N. 74 - 25 Maggio 199' > - Sped. Abb. Post. Gr 111/70 - CR - Distr.: Farri u
* Sveglia
col 64/128
LJn orologic
^esclusive
H dal tue
Peoni potei
Amiga
50 pagine
di software
e recensioni
Tutte le finestre
che volete
Commodore
Gratuito.
Vantaggioso.
Interessante.
Raramente Capita Di poter
associare Queste Qualità’
Ad Un Servizio.
personal Computer Annuncia
UN’INIZIATIVA Con tutte
queste Caratteristiche.
Dal 2 Aprile Sara’ Operativa
bbsystems, la Nuova Banca
dati Promossa da Systems
EDITORIALE.
Un Servizio Gratuito,
Vantaggioso, interessante.
t.a rinvia rtinli di \hind 4 «•himmmUm r
Il CI 28 va in pensione
Anatomia di una sprotezione
Tutte le finestre che volete
Per chi vuole collaborare
Schermo su schermo
Recensioni: Digipaint III
I disegni di Fra’ Martino
Prove: I compressori di Amiga
Inserti speciali per gli utenti
Commodore
Campus C64 - CI 28
Campus Amiga
Speciale Videogames:
688 Sub attack
Budokan
Space Harrier II
Tennis cup
It cames from thè desert
Sim city
Maniac mansion
Ninja warrior
Iron lord
Mistery of thè mummy
Weird dreams
Snoppy
West phaser
RUBRICHE
4 EDITORIALE
10 SYSTEMS EDITORIALE
PER TE
12 LA POSTA DEL 128
60 LA POSTA DI AMIGA
91 G0IDA ALL'ACQUISTO
Direttore: Alessandro de Simone
Coordinatore: Marco Miotti
Redazione/collaboratori: Mauro lussinoli, Luca Viola, Carlo D'Ippolito, Donato De Luca, Paolo Agostini. Davide Ardizzone. Claudio
Baiocchi. Luigi Caligari, Sergio Camici. Umberto Colapiccbioni, Laura & Miria Colombo. Valer» Ferri, Simona Locati, Michele Maggi,
Giancarlo Mariani. Clizio Merli, Marco Mietta, Marco Miotti, Oscar Mocda, Roberto Morassi, Guido Pagani, Antonio Pastorelli, Domenico
Pavone, Armando Sforzi, Sonja e Patrizia Scharrer, Dario Pistella, Fab» Sorgalo, Valentino Spataro, Danilo Toma, Franco Rodefla,
Stafano Simonelli
Direzione, pubblicità: Via Mosè 22 - 20090 Opera (MI) - Tel. 02/55500310 - Fax 02/57603039 - Redazione: Tel. 02/55500310
Pubblicità: Milano: Leandro Nencioni (direttore vendite), * Via Mosè 22 - 20090 Opera (MI) - Tel. 02/55500310
• Emilia Romagna: Spazio E • P.zza Roosevelt, 4 - 40123 Bologna - Tel. 051/236979
• Toscana, Marche, Umbria: Mercurio srl - Via Rodari. 9 - San Giovanni Vafdarno (AR) - Tel. 055^947444
• Lazio, Campania: Spazio Nuovo • Via P. Foscari, 70 - 00139 Roma - Tel. 06/81 09679
Abbonamenti: Liliana Spina
Arretrati e software: Opera, Via Mosè. 22 - Tel. 02/55500310 - Sig.ra Lucia Dominoni (il servizio è operativo nelle ore pomeridiane.)
Tariffe: prezzo per copia L. 6000. Abbonamento annuo (1 1) fascicoli L. 60.000. Estero il doppio.
Abbonamento cumulativo alle riviste Computer e Commodore Computer Club L. 100.000
I versamneti vanno indirizzati a: SYSTEMS EDITORIALE Srl mediante assegno bancario o utilizzando il c/c postale n. 37952207
Composizione, impaginazione a video e fotolito: Systems Editoriale Srl.
Stampa: Systems Editoriale/La Litografica Srl - CUGGIONO (MI)
Registrazioni: Tribunale di Milano n. 370 del 2/10/82 - Direttore Responsabile: Michele Di Pisa
Sped. in abb. post. gr. Ili - Pubblicità inferiore al 70%
Distributore.: Panini - Milano
Periodici Systems. Banca Oggi - Commodore Club (disco) - Commodore Computer Club - Commodore Computer Club (disco
produzione tedesca) • Computer - Computer disco • Electronic Mass Media Age - Hospital Management - Jonathan - Nursing ’90 - Pc
Programm (disco) - Personal Computer - Software Club (casseta ed. Italiana) - TuttoGatto • Videoteca - VR Videoregistrare
Amiga
5Ò pagine
di software
e recensioni
C 64
Tutte le finestre
che volete i
Commodore Computer Club - 3
EDITORIALE
IL TELEFONO, LA "SUA" VOCE
Le opportunità tecnologiche che oggi l’informatica mette a disposizionec
onsentono notevoli comodità; anzi, le scomodità sono tangibili
se un servizio telematico viene meno...
di Alessandro de Simone
G iorno piovoso di aprile. Sto prepa-
rando gli ultimi articoli di Commodo-
re Computer Club, anche se ho mal di
testa e mi sento le ossa rotte: devo avere
la febbre.
Telefono a Marco Miotti dicendo che,
il giorno dopo, preferisco non venire in
Redazione per non aggravare il mio sta-
to di salute e lo prego di mettersi in
contatto, l’indomani mattina, per riceve-
re, via modem, gli ultimi articoli; li termi-
nerò prima di andare a letto.
Fino a tardi clicko, salvo, stampo, cor-
reggo, imposto.
L’ultimo file di Ventura viene registrato
intorno alla mezzanotte, mentre fuori in-
furia un temporale.
Il mattino dopo tento di mettermi in
contatto con la nostra BBS.
Tento è un termine inadatto: in effetti
impreco, mi arrabbio, urlo e guardo lo
schermo del mio PC che non fa altro che
inviare, e ricevere, sporcizie di ogni tipo.
Un successivo contatto "vocale" con
la Redazione mi conferma che, purtrop-
po, la linea è "sporca”, forse a causa di
qualche contatto dovuto alla pioggia in-
cessante, forse perchè è ora di punta,
forse perchè, molto più banalmente, sia-
mo nelle mani della SIP.
Non mi rimane che coprirmi bene, ca-
ricare i dischetti, infilarmi in macchina e
recarmi ad Opera; 30 chilometri per an-
dare ed altrettanti per tornare: tempo,
benzina e pazienza persi inutilmente per
le linee "sporche".
Non ho riferito l’episodio per lamentar-
mi, un’ennesima volta, dei servizi SIP,
ma solo per far riflettere il lettore sull’at-
tualità tecnologica che abbiamo la fortu-
na di vivere. Fino a poco tempo fa era
impensabile effettuare un servizio per
telefono, nè era immaginabile svolgere
un lavoro stando seduti comodamente a
casa propria ed esser costretti ad uscire
solo in caso di estrema necessità.
L’utente informatico attuale non può
fare più a meno della telematica, dei suoi
servizi, delle sue opportunità di scambio
dati, programmi ed informazioni in gene-
rale. Un ulteriore invito ad interessarsi
dei modem, quindi, giunge più che mai
opportuno, soprattutto tenendo conto
del notevole abbassamento dei costi di
produzione e della conseguente diffusio-
ne dei modem.
SIP permettendo...
4 - Commodore Computer Club
DIVISILLABE
Da un po’ di tempo vedo
che C.C.C. riporta numero-
si errori di battitura riguar-
danti la divisione in sillabe.
Possibile che i redattori
non si accorgano dei visto-
si errori in fase di correzio-
ne delle bozze?
(da alcune lettere)
G li errori non sono dovuti
nè agli autori degli artico-
li nè ai redattori. Il vero ed
unico responsabile è, infatti, il
sistema di videoimpaginazio-
ne che. benché settato sulla
lingua italiana, spesso e vo-
lentieri genera svarioni di
ogni tipo.
Durante rimpaginazione, in
verità, non appena ci accor-
giamo degli errori provvedia-
mo a "forzare" la divisione in
sillabe; purtroppo capita che,
per esigenze di incolonna-
menti, alcune lunghezze (di
righe o di colonne) debbano
essere in seguito reimpostate
con la conseguente reimpo-
stazione globale ed automat-
ica dell'intero articolo.
Alcune parole che prima
dell'operazione erano intere,
pertanto, vengono stavolta
divise in sillabe secondo l’er-
rato algoritmo ed è pratica-
mente impossibile accorger-
sene e porre rimedio.
Il nome del pacchetto
D.T.P. che usiamo? Meglio
tacere...
Posseggo un adattatore te-
lematico 6499, ma non di-
spongo di software idoneo
ad un suo uso più sofistica-
to.
Potete aiutarmi a rintrac-
ciarlo, pubblicando, maga-
ri, il mio indirizzo in modo
da realizzare una "rete" di
utenti 6499?
Francesco Passera
Via Ivrea, 8
10017 Montanaro (To)
I l modem 6499 non è una
tavoletta grafica che ha bi-
sogno indispensabilmente di
software per funzionare.
Al suo interno, infatti, di-
spone già della Rom conte-
nente il programma per farlo
funzionare. A questo punto
basta formare il numero di te-
lefono e scambiar dati.
In effetti il 6499 non è l'op-
timum della comunicazione
telematica, soprattutto consi-
derando l’attuale produzione
di modem. Quando, però, l’a-
dattatore telematico fu lancia-
to dalla Commodore (diversi
anni fa) era uno dei modelli
più incredibili ed a basso
prezzo che era possibile pro-
curarsi.
Come vedi, comunque,
non ho difficoltà a pubblicare
il tuo annuncio. Ti consiglio,
però, di pensare seriamente
a cambiar computer dal mo-
mento che ciò che, oggi, ri-
sparmi non acquistando un
elaboratore più potente, lo
spendi in bollette Sip a causa
della modesta velocità di ge-
stione dell’apparecchio.
FILE-DAIA.SBRQB
Cercando di caricare un file
da nastro, con il mio C/64,
compare il messaggio "File
data error". Che cosa vuol
dire?
(Nunzio Labranca)
P urtroppo non hai inviato
nè programma nè file e
non comunichi nemmeno di
che tipo di dati si tratta.
Ritengo, pertanto, che tu
sia un principiante che, con
E PER AMIGA?
Nelle precedenti confezioni di Commodore Compu-
ter Club abbiamo inserito un dischetto, in omaggio,
del formato 5.25 pollici. Dal momento che il dischet-
to è incompatibile con Amiga, gli utenti di questo
computer hanno protestato presso la Redazione.
Per venire loro incontro si è quindi deciso di lanciare
l'offerta speciale "Quattro al prezzo di due". In altre
parole gli utenti Amiga potranno richiedere, secon-
do le solite modalità (riportate in altre pagine del
presente fascicolo) quattro fascicoli arretrati, oppu-
re quattro dischetti della serie Amigazzetta, pagan-
do l'importo relativo a due soli numeri (oppure a due
soli dischetti).
Commodore Computer Club - 5
SA LV AVIPEQ H/W
Vorrei commentare alcune parti del progetto "Salva-
video hardware" (C.C.C. n. 72).
Vi si afferma che il transistor BC-109 è usato per
questioni di sicurezza, allo scopo di evitare un con-
tatto diretto relè - computer; ritengo, al contrario,
che il contatto ci sia egualmente perchè uno dei due
capi è in contatto diretto con la porta tape del C/64.
C’è da considerare, inoltre, che il relè è formato da
una bobina avvolta su dì un nucleo magnetico. Ad
ogni apertura o chiusura dei contatti la corrente
circola, generando, ai morsetti della bobina, una
forza elettromotrice auto-indotta che tende ad op-
porsi alla causa che l’ha generata. Tale sovratensio-
ne, direttamente proporzionale alla velocità con cui
varia la corrente, può distruggere II transistor pre-
sente nel computer. In simili casi, quindi, è bene
porre un diodo sui morsetti del relè che sarà pola-
rizzato Inversamente (messo al contrario) proprio
perchè agisca solo nei transitori. Un fusibile, posto
a valle del relè, completerebbe la "sicurezza" del
circuito.
(Andrea D’Orsi - Udine)
molta buona volontà, cerca
disperatamente di supplire al-
le notevoli carenze del ma-
nuale allegato alla confezio-
ne del computer.
Una trattazione molto ap-
profondita è stata affrontata
su molti fascicoli di C.C.C.
Ti consiglio di studiare, so-
prattutto, i due inserti pubbli-
cati in precedenza: mi riferi-
sco a "Come gestire senza
problemi i file sequenziali"
(C.C.C. n. 39); "...e non indur-
ci nei Syntax error" (C.C.C. n.
31); "Gli errori dovuti alla ma-
nipolazione delle stringhe"
(C.C.C. n. 32). I tre argomenti
citati occupano, ciascuno,
l’intero inserto del corrispon-
dente fascicolo cui si riferi-
scono.
C/6 4, VITA MEDIA
Qual è la vita media di un un
C/64 tenuto, mediamente,
acceso 5-6 ore al giorno?
(Angelo Rinaldi - Castellana )
U n computer moderno, co-
me un qualsiasi apparec-
chio elettronico attualmente
prodotto, dovrebbe offrire
una vita media praticamente
infinita.
In realtà, tuttavia, qualcosa
può accadere a qualche mi-
nuscolo chip al silicio che, co-
me ogni cosa terrena, non
può essere eterno.
Nè si può immaginare di
attribuire vite più lunghe a
computer di marca più presti-
giosa.
Il mio C/128-D, tanto per far
un esempio, è uno dei primi
esemplari prodotti dalla Com-
modore. gira egregiamenete
da molti anni e non mi ha mai
dato fastidio.
Invece uno dei mie compu-
ter Ms-Dos (che, in teoria, do-
vrebbe risultare più affidabile
del "giocattolo" C/l 28 sia per-
chè espressamente "profes-
sionale". sia perchè di marca
"prestigiosa") mi sta dando
seri problemi di Ram e dovrò,
quanto prima, portarlo a ripa-
rare.
Pensa a campare, quindi, e
nel frattempo tocca ferro...
MPS-1230
Ho acquistato una Mps-
1230, ma non riesco a tro-
vare un software di scrittu-
ra in grado dì farla funzio-
nare.
(Nevio Tavoni - Pescara)
M a scherziamo? Un qua-
lunque sistema di video-
scrittura ( Easy Script. Geos
eccetera) per C/64 è in grado
di gestire la stampante citata.
E’ molto probabile che le
istruzioni del software in tuo
possesso siano incomplete
(o che l'apparecchio sia difet-
toso!).
Procurati i libretti di istruzio-
ne originali e vedrai che la
1 230 filerà come un treno.
MANUALE
PJLB1F ER1MENT.Q
Spesso, nel manuale di
istruzioni allegato al C/64,
si fa riferimento ad un fan-
tomatico "Manuale di riferi-
mento del programmato-
re".
Vorrei sapere se è in italia-
no e dove è possibile acqui-
starlo.
(Emanuele Giacometti - Ve-
nezia)
I l volume, edito dalla stessa
Commodore, è in lingua ita-
liana ed è formato da una mi-
riade di capitoli relativi al ba-
sic, al linguaggio macchina,
alla grafica, al suono, all'har-
dware, eccetera.
E’ uno dei volumi più com-
pleti che esistano, ma altret-
tanto difficile da trovare se
non presso librerie molto spe-
cializzate o per corrisponden-
za (hai provato a chiedere ai
nostri inserzionisti che pubbli-
cano le loro pagine pubblici-
tarie?).
BUFFER DI TASTIERA
Come posso modificare il
buffer di tastiera (locazione
649) in modo da gestire più
di 10 caratteri?
(Ettore Amanranti - Roma)
N on è possibile, dal mo-
mento che l’operazione
rischierebbe di gestire anche
altre locazioni che il computer
utilizza per altri scopi.
Ma perchè i 10 caratteri
non ti bastano? Se avessi co-
municato il problema che re-
almente vuoi risolvere avrei
potuto darti una mano; è
probabile, infatti, che altre
tecniche, estranee alla mani-
plazione del byte 649, possa-
no rendere ottimale la proce-
dura che intendi portare a ter-
mine.
Per quanto riguarda le altre
domande contenute nella let-
tera, è stata data una risposte
in più di una occasione.
6 - Commodore Computer Club
Replay
Finalmente! Una potentissima cartuccia utility+freezer+trainer!
Inserita nella porta di espansione del vostro Amiga 500, permette di:
- congelare e salvare su disco un programma caricato in memoria, per poterlo ricaricare quando volete fino a 4 volte più velocemente
- trovare le "polce" necessarie per ottenere vite infinite nei vostri giochi preferiti
- modificare e cambiare gli sprites di un gioco, per creare simpatiche versioni personalizzate o usare gli sprites nei vostri programmi
- avvertire della presenza di qualsiasi virus in memoria o sui vostri dischetti, distruggendo tutti i virus conosciuti
- salvare schermate e musiche su disco come files IFF, per poterle elaborare dai vostri programmi preferiti
- rallentare lo svolgimento dei giochi fino al 20% della velocità originale, per aiutarvi negli schermi più complicati
- usare il più potente moni tor-dis assembler per Amiga, con completo controllo dell "hardware e dei suoi registri (anche quelli
”write-only M X uno strumento preziosissimo per il detaigging dei vostri programmi: screen editor, breakpoint dinamici,
assembler/disassembler delle istruzioni Copper, disk I/O con possibilità di alterare parametri quali sync o lunghezza della traccia,
calcolatrice, notepad, ricerca di immagini o suoni in tutta la memoria, modifica caratteri in memoria, altera i registri della CPU,
ed altro ancora.
Amiga Action Replay originale
con manuale in italiano a sole 1 79.000
Viale Monte Nero 31
20135 Milano
Tel. (02) 55.18.04.84
(4 linee rie. aut.)
Fax (02) 55.18.81.05 (24 ore)
Negozio aperto al pubblico tutti i giorni
dalle 10 alle 13 e dalle 15 alle 19.
Vendita per corrispondenza.
Sconti per quantità ai sigg. Rivenditori.
SYNCHRO EXPRESS
Eccezionale novità per Amiga: è
finalmente disponibile il primo copiatore
hardware peri dischetti Amiga! Con
una speciale interfaccia colle gau a 2
disk drìves (quello interno al computer ed
uno esterno), effettua copie di sicurezza,
perfettamente funzionanti, di qualsiasi
software protetto in meno di 50
secondi, compresi gli "impossibili"
come Dragoni Lair.
89.000
FATTER AGNUS 8372- A
Il nuovo chip che permette di usare 1 MB di Chip
Ram nel vostro Amiga, disponibile ora in kit di
montaggio per l'installazione in tutti i modelli
B-2000, ed A-500 (con piastra madre rcv. 4 o 5) con
inserita l'cspanaione A-501 da 512K.
159.000
L’INFORMATICA PER
LO STUDIO L’HOBBY LA CASA
HA FINALMENTE
UNA SUA
MOSTRA- MERCATO
Si chiama Abacus. Si tiene
dal 21 al 29 Aprile nel
Padiglione 14 della Gran-
de Fiera d’Aprile. Li vi a-
spettano i computer (con pro-
grammi e periferiche) per i
giochi intelligenti, per impa-
rare una lingua, per fare
musica, per disegnare, per
scrivere la tesi di laurea, per
giocare al totocalcio. E poi
i lettori CD ROM per le en-
ciclopedie, i telefoni più o
meno intelligenti, i terminali
videotext, i nuovi prodotti
che “telematizzano” la ca-
sa. Con la possibilità di ve-
derli, toccarli con mano e -
in molti casi - acquistarli.
SOFTWARE
SYSTEMS EDITORIALE PER TE
La voce III
Aggiunge al C/64 nuovi comandi Basic
che consentono sia di far parlare il compu-
ter. sia di farlo Cantare! Diversi esempi
allegati.
Cassetta : L. 12000 - Disco: L. 15000
Raffaello
Un programma completo per disegnare, a
colori, con il C/64: linee, cerchi, quadrati,
eccetera. Valido sia per disegno a mano li-
bera che geometrico.
Cassetta: L. 10000
Oroscopo
Devi solo digitare la data di nascita e le
coordinate geografiche del luogo che ti ha
dato i natali. Vengono quindi elaborate le
varie informazioni (case, influenze dei se-
gni astrali, eccetera) e visualizzato un profi-
lo del tuo carattere. Valido per qualsiasi an-
no. è indicato sia agli esperti sia ai meno in-
trodotti. E' allegata una tabella delle coor-
dinate delle più note città italiane e l’elen-
co delle ore legali in Italia dal 1916 al
1978.
Cassetta: L. 12000
Disco: L. 12000
Computer Music
Cassetta contenente numerosi brani di
successo da far eseguire, in interrupt. al
tuo C/64 sfruttando, fino in fondo, il suo
generatore sonoro (SID).
Cassetta: L. 12000
Gestione Familiare
Il più noto ed economico programma per
controllare le spese ed i guadagni di una
famiglia.
Cassetta: L. 12000
Disco: L 12000
Banca Dati
Il più noto ed economico programma per
gestire dati di qualsiasi natura.
Cassetta : L. 12000
Disco: L. 12000
Matematica finanziaria
Un programma completo per la soluzione
dei più frequenti problemi del settore.
Cassetta: L. 20000
Disco: L. 20000
Analisi di Bilancio
Uno strumento efficace per determinare
con precisione i calcoli necessari ad un
corretto bilancio.
Cassetta: L. 20000
Disco: L. 20000
Corso di Basic
Confezione contenente quattro cassette
per imparare velocemente le caratteristi-
che delle istruzioni Basic del C/64 ed i ru-
dimenti di programmazione. Interattivo.
Cassetta: L. 19000
Corso di Assembler
Un corso completo su cassetta per chi ha
deciso di abbandonare il Basic del C/64
per addentrarsi nello studio delle potenzia-
lità del microprocessore 6502. Intei attivo.
Cassetta.* L 12000
Logo Systems
Il linguaggio più facile ed intuitivo esistente
nel campo dell'informatica; ideale per far
avvicinare i bambini al calcolatore. Diversi
esempi allegati.
Cassetta: L. 6500
Compilatore
Grafico Matematico
Uno straordinario programma compilato-
re. di uso semplicissimo, che permette di
tracciare, sul C/64, grafici matematici Hi-
Res ad altissima velocità. Esempi d'uso
allegati.
Cassetta: L. 8000
Emulatore Ms-Dos e Gw-
Basic
Un prodotto, unico nel suo genere, che
permette di usare, sul C/64 dotato di drive,
la sintassi tipica del più diffuso sistema o-
perativo del mondo. Ideale per studenti.
Solo su disco: L. 25000
Emulatore Turbo Pascal 64
Permette di usare le più importanti forme
sintattiche del linguaggio Turbo Pascal (an-
che grafiche!) usando un semplice C/64
dotato di drive. Ideale per studenti.
Disco : L 25000
L.M. + Routine grafiche
Un fascicolo speciale (corredato di di-
schetto) suddiviso in due parti: corso com-
pleto di linguaggio macchina 6502 e im-
plementazione di numerose routine che
aggiungono al C/64 istruzioni Basic speci-
fiche per la grafica, comprese quelle per
disegnare in prospettiva!
Fascicolo + disco: L 1 6000
Utility 1
Un dischetto pieno zeppo di programmi
speciali per chi opera frequentemente con
il drive.
Disco: L. 15000
Utility 2
Seconda raccolta di utility indispensabili
per realizzare sofisticate procedure di
programmazione.
Disco: L. 15000
Graphic Expander 128
Per usare il C/1 28 (in modo 1 28 e su 80
colonne) in modo grafico ht-res. Aggiunge
nuove, potenti istruzioni Basic per disegna-
re in Hi-Res con la massima velocità in mo-
dalità 80 colonne.
Disco: L 27000
Directory
Come è noto, a partire dal N. 10 di
"Software Club" (la rivista su disco per l'u-
tente dei "piccoli” computer Commodo-
re). vengono riportati tutti i listati, in forma-
to C/64-C/1 28. pubblicati su " Commodo-
re Computer Club". In precedenza tali li-
stati venivano inseriti, mensilmente, in un
dischetto, di nome "Directory", che oltre ai
programmi di C.C.C. ospitava decine di al-
tri file tra cui musiche nell'interrupt. giochi,
listati inviati dai lettori e altro. Ogni disco,
dal prezzo irrisorio, contiene quindi una ve-
ra miniera di software. Ordinando i di-
schetti di "Directory" si tenga conto che al
N. 1 corrispondeva il contenuto del N. 34
di "Commodore Computer Club", al N. 2 il
N. 35 e cosi via.
Ogni dischetto: L. 12.000
10 - Commodore Computer Club
Micro Pascal 64
Descrizione accurata della sintassi usata
dal linguaggio Pascal "classico". Completa
il volume un programma di emulazione del
PL/O sia in formato Microsoft sia in vesione
C/64 (da chiedere, a parte, su disco).
(125 pag.)
L. 7000
Dal Registratore al Drive
Esame accurato delle istruzioni relative alle
due più popolari periferiche del C/64. Di-
versi programmi applicativi ed esempi d'u-
so. (94 Pag.)
L 7000
Il linguaggio Pascal
Esame approfondito della sintassi usata
nel famoso compilatore. (112 pag.)
L. 5000
Utilities e giochi didattici
Raccolta di numerosi programmi, in ver-
sione C/64 e Spectrum, di particolare inte-
resse per chi intenda svliluppare software
didattico. (127 pag.)
L. 6500
Simulazioni e test
per la didattica
Raccolta di numerosi programmi che ap-
profondiscono e tendono a completare la
trattazione già affrontata sul precedente
volume. (127 pag.)
L. 7000
Dizionario del Personal
Computer
Raccolta dei termini più diffusi nel campo
professionale: dizionario inglese - italiano.
(Edizione ridotta). (96 pag.)
L. 8000
Dizionario dell'Informatica
Dizionario inglese italiano di tutti i termini
usati nell’informatica. (Edizione completa).
(385 pag.)
L. 20000
Word processing: istruzioni
per l'uso
Raccolta delle principali istruzioni dei più
diffusi programmi di w/p per i sistemi Ms-
Dos: Word Star. Samna. Multimate Advan-
tage. Word 3. (79 pag.)
L. 5000
Telefax
Volumetto divulgativo sull'importanza del
Telefax e sulle sue modalità operative ca-
ratteristiche. [66 pag.)
L. 5000
Come compilare un giornale
aziendale in Azienda
I principali problemi per chi opera in am-
biente DPT. affrontati e risolti con la massi-
ma chiarezza e semplicità. (80 pag.)
L. 5000
Unix
Un volumetto per saperne di più sul siste-
ma operativo professionale per eccellen-
za. (91 pag.)
L 5000
ABBONAMENTO
Commodore Computer Club
1 1 fascicoli: L. 60.000
ARRETRATI
Ciascun numero arretrato
di C.C.C. L. 6000
COME RICHIEDERE I PRODOTTI SYSTEMS
Coloro che desiderano procurarsi i prodotti della Systems Editoriale devono in-
viare. oltre alla cifra risultante dalla somma dei singoli prodotti. L 3500 per spe-
se di imballo e spedizione, oppure L 6000 se si desidera la spedizione per mez-
zo raccomandata.
Le spese di imballo e spedizione sono a carico della Systems se ciascun ordine
è pari ad almeno L. 50000.
Per gli ordini, compilare un normale modulo di C/C postale indirizzato a:
C/C Postale N. 37 95 22 07
Systems Editoriale
Viale Famagosta, 75
20142 MILANO
Non dimenticate di indicare chiaramente, sul retro del modulo (nello spazio in-
dicato con "Causale del versamento") non solo il vostro nominativo completo di
recapito telefonico, ma anche i prodotti desiderati ed il tipo di spedizione
da effettuare.
Per sveltire la procedura di spedizione sarebbe opportuno inviare, a parte, una
lettera riassuntiva dell'ordine effettuato, allegando una fotocopia della ricevuta
del versamento.
Volendo una spedizione in contrassegno è necessario anticipare la cifra di L
1 0000 (diecimila), da inviare secondo le modalità prima indicate, indipenden-
temente dalla quantità di materiale richiesto, e da conteggiare, comunque. IN
AGGIUNTA alla cifra risultante dall'ordine. (Si sconsiglia, pertanto, la richiesta di
di prodotti in contrassegno)
Chi volesse ricevere più celermente la confezione deve inviare la somma richie-
sta mediante assegno circolare, oppure normale assegno bancario (non trasfe-
ribile o barrato due volte) intestato a:
Systems Editoriale
Milano
Commodore Computer Club - 1 1
CHE TEMPI. RAGAZZI!
Lavorando con l’orologio
interno del mio C/128 , mi
sono reso conto che un li-
stato come questo...
10 Ti$ = ”000000"
20 H$ = Left$ (ti$, 2): M$ =
Mid$ (ti$, 3, 2)
30 S$ = Right$ ( ti$ , 2): Print
Chr$(19);
40 Print "ore:"; H$: Print
"minuti:"; M$
50 Print " sec :"; S$: Sleep 1 :
Goto 20
...presenta un errato con-
teggio dei secondi. Spes-
so, infatti, viene saltato un
secondo, passando diretta-
mente (p. es.) da 8 a 10.
Eliminando l’istruzione
Sleep, tutto torna normale:
vuol dire che Sleep non è
compatibile con la variabile
di sistema Tl$?
(Luca Seriini - Castenedoio)
L ’inconveniente non è le-
gato a problemi di compa-
tibilità, ma piuttosto ai tempi
di esecuzione dell’interprete
basic, in associazione ad una
non totalmente affidabile pre-
cisione di 775.
Più chiaramente: quando il
programmino va ad eseguire
l'istruzione Sleep 1, che inter-
rompe le operazioni per un
secondo, la variabile 775con-
tinua ad aggiornarsi, incre-
mentandosi di un secondo ad
ogni "passaggio".
Prima dei vari Printche mo-
strano lo stato di Tl$, va però
considerato anche il tempo
necessario all’interprete per
eseguire (dopo il Goto 20 ) le
assegnazioni alle variabili
stringa, che, tra l’altro, risulta-
no proprio tra le operazioni
più lente del basic.
Certo si sta parlando di fra-
zioni di secondo, ma, dopo un
certo numero di iterazioni, la
loro somma provocherà il
"salto" lamentato.
A livello di decimi di secon-
do, inoltre, la variabile Tl$ ed
il comando Sleep non sono
del tutto affidabili, aggiungen-
do qualche altro millesimo di
ritardo o anticipo al già preca-
rio equilibrio del programma.
Nel prosieguo della missi-
va, il lettore propone in alter-
nativa una specie di contato-
re interno al programma, per
supplire a tale imprecisione.
Ma il rimedio non può ov-
viamente essere questo: per
gli stessi motivi, l'orologio ri-
sulterebbe assolutamente
non conforme alla realtà, an-
che in presenza di una scan-
sione dei secondi apparente-
mente regolare. Se si ha l'e-
sigenza di rendere compatibi-
le Sleep (o qualunque altro
tipo di temporizzazione ba-
sic) con la reale scansione
del tempo, l’unica soluzione
possibile è quella di ricorrere
ai veri orologi hardware del
computer, ovvero i due cosid-
detti TOD (Time Of Day) im-
plementati dai due chip CIA
(Complex Interface Adapter).
Per la cronaca, sono locati
agli indirizzi 56328 - 56331
(Cia 1 ) e 56584 - 56587 (Cia
2) di banco 15 e dispongono
anche di allarme (come una
sveglia, per intenderci), ma
una loro corretta gestione è
possibile solo da linguaggio
macchina, per di più compli-
cato (o semplificato, dipende
dai gusti) dalla notazione
BCD (Binario Codificato De-
cimale).
Il tutto, considerate le esi-
genze di compatibilità col ba-
sic, condito da una spruzzati-
na di Interrupt.
L’argomento, insomma,
non è certo affrontabile in
questa sede.
Se richiesto da più "voci"
(triste esigenza, ahinoi, per
un computer ormai in ago-
nia), se ne potrà ugualmente
parlare in qualche articolo
espressamente dedicato al
linguaggio macchina ed al
Bcd in rapporto al C/128.
GEOS M UTIL AT O
Dopo aver sentito parlare
con toni entusiastici del si-
stema Geos, mi sono deci-
sa ad acquistarlo (V 1.5).
Sul disco, però, non ho tro-
vato i programmi che più mi
interessavano: GeoWrite e
GeoPaint. Da! manuale (In
inglese) mi è parso di capi-
re che i suddetti programmi
non ci siano proprio, e sia-
no da comprare separata-
mente. E’ possibile?
(Elena Annuema - Milano)
I l pacchetto Geos, giunto pe-
raltro alla versione 2.0 (sal-
vo novità dell'ultima ora),
comprende tanto il GeoWrite
che il GeoPaint. E’ probabile
che l’acquisto sia errato, ma-
gari invece del Geos si tratta
di qualche applicazione ad
esso riservata. A meno che,
ipotesi non del tutto da scar-
tare, non sia una copia in-
completa (vogliamo chiamar-
la pirata?) dell’originale...
12- Commodore Computer Club
(IN)UTILI AUTOBOOT
A proposito della risposta
” Routine Fantasma" pub-
blicata nella posta per
C/128 del n. 71, vorrei sape-
re se le stesse regole si
possono applicare al C/128
in modo 64, e se si può far
eseguire un programma
basic tramite l'auto boot.
(Andrea - Vicenza)
L ’argomento di "Routine
fantasma ", in effetti, non
trattava l’autoboot in genera-
le, ma solo in rapporto alla
possibilità di "nascondere" al*
la directory un eventuale pro-
gramma.
In tal senso, una risposta
alla seconda domanda è già
esplicitamente inclusa in
quelle righe.
Il semplice autoboot di un
programma basic, è invece la
cosa più facile di questo mon-
do. anche per chi non abbia
voglia di approfondire l'argo-
mento dal punto di vista pro-
grammazione: basta adope-
rare la routine basic Boot Ma-
ker inclusa nel dischetto for-
nito assieme al computer,
che comprende un’opzione di
scelta tra programmi basic ed
LM. Il modo 64, in senso stret-
to. non consente l'autoboot.
Tuttavia, è teoricamente
possibile applicare quanto
esposto sul n. 71.
Nel lontano n. 41 (aprile '87
pag. 69), è stata infatti pubbli-
cata una (utilissima) routine
di autoboot che consente
passaggio, caricamento ed
esecuzione automatica di
programmi in modo 64. Di-
sponendo delle necessarie
cognizioni Assemblye di mol-
ta. molta pazienza, si potreb-
be anche modificarla per lan-
ciare un programma "fanta-
sma" memorizzato su tracce
e settori di un disco. Ma. in
tutta franchezza, a che prò?
Un simile programma gire-
rebbe solo in modo 64, ma
potrebbero usufruirne esclu-
sivamente i possessori del
C/128!
Come si fa ad inserire in un
programma, dopo un co-
mando Header (a$), la ID di
un disco da formattare ado-
perando una variabile?
(Alberto Bianchi - Roma)
I l manuale in dotazione al
C/128, alla voce Header, ri-
porta a chiare lettere una nota
che precisa: "Non è possibile
utilizzare una variabile strin-
ga come i.d. n .
Tuttavia, forzando un po’ la
mano, qualcosa si può fare.
Ecco la soluzione:
10 A$ = "miodisco":
del VDC, è possibile visua-
lizzare i pixel con colori dif-
ferenti.
(Raffaele Cirillo - T recase)
D ue pixel contigui, consi-
derando il colore di primo
piano, non possono assume-
re differenti cromatismi.
In teoria, è possibile adope-
rare un diverso colore per
ogni raggruppamento di pixel
corrispondente ad una posi-
zione - carattere, ovvero 8x8
pixel, ma nella pratica è im-
possibile, a meno di non ri-
durre le dimensioni della pa-
gina grafica.
Vediamo perchè, delinean-
do le caratteristiche grafiche
generali della modalità 80 co-
lonne.
Com’è noto, il Chip Vdc di-
spone di una sua propria area
di memoria, completamente
separata dal resto del compu-
ter. per un totale di 16 Kbyte.
Quest’area, normalmente,
contiene la memoria di scher-
mo (ad ogni locazione corri-
sponde un carattere sul vi-
deo). gli attributi di ogni carat-
tere (colore, sottolineatura,
set maiscolo / minuscolo,
ecc.), nonché i due set di ca-
ratteri disponibili e un po’ di
Ram libera.
Quando si passa in modo
grafico, settando per l'appun-
to il bit 7 del registro 25 del
Vdc. a partire dalla locazione
0 della stessa area di memo-
ria si instaura una Bitmap, cui
ld$ = "xx M
20 Header (a$) + Chr$
(44) + ld$
Si provi a mandare
in esecuzione questo
mimprogramma (ba-
dando che il disco in-
serito nel drive sia re-
almente da formatta-
re), e tutto funzionerà
regolarmente.
Dopo la formattazio-
ne, si avrà un disco
con nome Miodisco e
i.d. xx.
Unico limite, la va-
riabile A$ non dovrà
superare i 13 caratteri,
in quanto il successivo
Chr$ (44) { codice Ascii
della virgola) e i due
caratteri della ID si
sommeranno alla sua
lunghezza, provocan-
do un errore String too
long se il totale supera
16.
PER PIXEL
Vorrei sapere se, una
volta entrati in Hires
640 x 200 settando il
bit 7 del registro 25
100 REM DEMO UTILIZZO DELLA SUPER HIRES 640X200
110 REM = = * = == = = = = = == = = == = = ====== = = == = »== = =SX =
120:
130 REM ATTIVA GRAFICA SUPER HIRES
140 FAST: SCRIVI = 52684: LEGGI = 52698: SYS LEGGI, , 25
150 RREG A: A = A AND 191 REM BIT 6 AZZERATO
160 A = A OR 128: REM BIT 7 SETTATO
170 SYS SCRIVI. A. 25: REM HIRES SENZA ATTRIB. COLORE
180 REM PULISCE PAGINA GRAFICA
190 SYS LEGGI. . 24: RREGA: A = A AND 127: REM BIT 7 = 0
200 SYS SCRIVI. A, 24: REM OPERAZIONE DI ’FILL'
210 SYS SCRIVI. 0. 18: SYS SCRIVI. 0. 19: REM IND.DI START
220 SYS SCRIVI. 0. 31 : REM VALORE DA STORARE IN RAM
230 FORX = 0TO63: SYS SCRIVI. 255. 30: NEXT: REM FILL
240 REM RILEVAMENTO TASTI E JOYSTICK
250 X = 320: Y = 1 00: CI = 0: C2 = 1 5: REM COORDINATE E COLORI
26C GET X$: IFX$ = "S ,, ORX$ = "P" THEN BEGIN
270 CI = (Ci - (X$ = "S") ) AND15: C2 = (C2- (X$ = "P") ) AND15
280 SYS SCRIVI, C2'16 + CI, 26: BEND: REM CAMBIO COLORI
290 IF X$ = CHR$ (19) THEN 250: REM POSIZIONE 'HOME'
300 IF X$ = CHR$ (147) THEN 210: REM CANCELLA SCHERMO
310 IF (JOY (2) AND128) =128 THEN FL = 1 : REM FIRE PREMUTO?
320 J = JOY (2) AND15: IFJ = 0 THEN 260: REM RILEVA JOYSTICK
330 REM NUOVE COORDINATE X ED Y
340 Y2 = Y: Y = Y + (J < 3 OR J = 8) - (J > 3 AND J < 7)
350 IFY < OORY > 199 THEN Y = Y2: REM LIMITE VERTICALE
360 X2 = X: X = X- (J > 1 AND J < 5) + (J > 5)
370 IFX < OORX > 639 THEN X = X2: REM LIMITE ORIZZONTALE
380 REM — - INDIRIZZO NELLA VDC RAM (HI/LOW)
390 IND = (Y*80) + INT (X/8)
400 HI = INT (IND/256) : LOW = IND- (Hl*256)
410 REM DISEGNA NELLA BITMAP
420 SYS SCRIVI. HI. 18: SYS SCRIVI, LOW, 19
430 IFFL = 1 THEN FL = 0: GOTO260: REM SE FIRE. NON DISEGNA
440 SYS LEGGI. . 31 : RREG A: REM LEGGE REGISTRO 31
450 SYS SCRIVI, HI, 18: SYS SCRIVI, LOW. 19
460 SYS SCRIVI. A OR 2 A (7- (X AND 7) ) . 31
470 GOTO 260
Commodore Computer Club - 13
ad ogni pixel "acceso" corri-
sponde un bit posto ad 1 .
Tra l’altro, con una disposi-
zione più semplice di quella
adottata dal Vie per la comu-
ne Hires 40 colonne. •
Qui, infatti, ad ogni linea
orizzontale sullo schermo
corrisponde una sequenza
continua di byte.
Il colore viene associato
(stavolta esattamente come
per il Vie) mediante una serie
di locazioni chiamate Attribu-
te Memory, ognuna delle
quali controlla tutti i pixel al-
l’interno di una griglia 8x8
corrispondente ad una posi-
zione carattere.
Quest’area di memoria può
essere abilitata, o meno,
agendo sul bit 6 del registro
25 (0 = off 1 = on); se la si
attiva, l’indirizzo di partenza è
determinato dal valore conte-
nuto nei registri 20 (Alto) e 21
(basso).
A parte la complicazione in
sè, nella stragrande maggio-
ranza dei casi è conveniente
disabilitare questa possibilità,
per un motivo che risulterà
ovvio con un paio di calcoli.
Data la risoluzione dello
schermo, la bitmap occuperà
640 x 200 = 1 28000 bit, pari
a 128000/8=16000 byte, ov-
vero quasi tutta la memoria
del Vdc: in pratica, non rima-
ne spazio per gli attributi co-
lore.
La prassi più comune,
quindi, è quella di disabilitare
la Attributo Memory in modo
tale che i colori di sfondo e
primo piano, unici per tutta la
pagina grafica, siano preleva-
ti dal registro 26.
Più in particolare, i bit da 0
a 3 di quest'ultimo determina-
no il colore di fondo, mentre
quelli da 4 a 7 il colore di
primo piano.
Va detto che, volendo, gli
attributi colore possono esse-
re implementati diminuendo il
numero di righe dello scher-
mo (= limitare le dimensioni
della bitmap), ma program-
mare la super hires è già ab-
bastanza complesso senza
aggiungere ulteriori compli-
cazioni... Giusto per non fer-
marsi alle sole parole, in que-
ste pagine potete trovare un
listato dimostrativo, scritto in
basic, che consente di dise-
gnare con il joystick (in porta
2) nella pagina Hires 640 x
320. Inoltre, con il tasto S (da
premere 2 volte, come di con-
sueto, nelle 80 colonne) si
cambia il colore di Sfondo,
mentre al tasto Pè demanda-
to il compito di modificare il
colore di tracciamento.
Premendo il Fi re del Joy, si
avanza (un po’ alla cieca)
senza disegnare, con Home
ci si riporta al centro dello
schermo e con Shift + Home
si cancella tutta la pagina.
Così com’è, il programma
non prevede un ritorno alle
normali condizioni testo, che
richiederebbe quantomeno
un ripristino della ram caratte-
ri; per farlo, è necessario un
Reset del sistema.
Il listato, zeppo di Rem
esplicative (eliminabili), ha
uno scopo prettamente didat-
tico e dimostrativo, ma può
servire da base per più sofi-
sticate elaborazioni. L’ideale,
comunque, sarebbe tradurlo
in Assembly per supplire alla
lentezza del basic, peraltro
più comprensibile (o quasi...).
Si ricordi, spulciando il li-
stato, che per accedere ai re-
gistri del Vóce necessario ri-
correre a due routine di siste-
ma: $CDCC per pokarvi qual-
cosa e $CDDA per leggerli.
Nel primo caso, in basic, si
adopera...
Sys 52684, valore, registro
...mentre con...
Sys 52698 , , registro
...si otterrà il contenuto del
registro nell’accumulatore,
che da basic è associabile
alla variabile (p. es.) A me-
diante l’istruzione RregA. Dei
registri Vdc usati, 1 8 e 1 9 ser-
vono per memorizzarvi l’indi-
rizzo della Ram 80 colonne al
quale si vuole accedere (for-
mato alto / basso); il bit 7 del
registro 24 indica se si vuole
compiere una operazione di
Fili (bit azzerato, come nel
nostro listato per porre a zero
tutti i bit della bitmap) o di
Copy (bit settato); infine, il re-
gistro 31 deve contenere il
valore che si intende trasferi-
re nella Ram puntata dai regi-
stri 1 8 e 1 9 (tanto per il Riem-
pimento che per il semplice
"storaggio"). Quando si scri-
ve qualcosa in Ram (nel no-
stro caso rasformata in Bit-
map), il contenuto dei registri
1 8 e 1 9 viene automat-
icamente incrementato dal si-
stema. Il tutto non è certo
semplice, ma la complicazio-
ne, per chi vuole "strizzare" il
C/128, è prassi.
fìlA’ F A TT O. Q QUASI.»
Ho trasferito sul C/128 una
routine basic di Input con-
trollato In origine scritta
per il C/64, sul quale funzio-
nava piuttosto bene. In mo-
do 128, però, pur non pre-
sentando anomalie, è mol-
to più lenta : non potreste
pubblicarne un equivalente
in linguaggio macchina
tanto per il C/64 che per il
C/128?
(Renato Scuccato - Carmi-
gnano di Brenta)
I l basic 7.0, in effetti, risulta
spesso più lento del suo
meno potente cugino 2.0, a
meno di non sfruttare appie-
no le possibilità offerte dal
Fast Mode (su 80 colonne è
davvero risolutivo, potendolo
adoperare in permanenza).
Nel caso particolare degli
Input controllati, spesso que-
sto tipo di routines sono pro-
gettate in modo da potersi
adattare alle più svariate esi-
genze, con inevitabile mag-
giore "pesantezza" nel proce-
dere.
Un primo rimedio, già in ba-
sic, può dunque essere quel-
lo di snellire la routine man-
tendo solo i controlli stretta-
mente necessari al program-
ma.
Chiaro che, affidando il tut-
to al linguaggio macchina, il
problema cessa di esistere.
Dovendo, però, progettare
una routine necessariamente
generica, questa assumereb-
be in ogni caso delle dimen-
sioni non certo irrilevanti,
senza peraltro potersi mai
adattare a tutte le esigenze.
Una routine (in l.m.) del ge-
nere, comunque, è stata già
pubblicata su C.C.C. n. 55
(Lug / Ago ’88), riferita al
C/64: con poche modifiche, e
un po’ di abitudine all’Assem-
bly, può anche essere adatta-
ta al modo 128.
14 - Commodore Computer Club
SISTEMI
IL C/128 VA IN PENSIONE
Ed il C64 entra nella terza età.
Consigli (quasi) disinteressati per guardare lontano
di Alessandro de Simone
D opo la morte ormai accertata del
C/16 e del Plus/4 (annunziata con
rammarico, del resto, qualche numero
fa) il polso del C/128 incomincia a batte-
re debolmente.
La mortale malattia è quella che, pun-
tualmente, ha colpito dapprima i sistemi
della serie Commodore Pet e poi il Vie
20 .
Ma il "virus", stavolta, risulta ancora
più violento di quanto accadde, tempo
fa, ai primi modelli di casa Commodore.
Alla serie Pet ed al Vie 20, infatti, l’ob-
solescenza inferse il colpo mortale per
motivi tecnologici: i primi erano compu-
ter in grado di gestire al massimo 32
KRam ed offrivano l’uscita solo in bianco
e nero; il secondo, pur disponendo di
un’uscita a colori, era troppo limitato sia
per quantità di Ram sia per l’angusta
visualizzazione dello schermo (512 ca-
ratteri o giù di lì). Era fin troppo intuitivo
che il C/64, appena uscito, dovesse far
cadere nell'oblio tutti i computer che, a
pari prezzo, offrivano caratteristiche
analoghe, se non inferiori.
Il C/64, ed in seguito il C/128 , offrivano
infatti, a parità di prezzo, una quantità di
memoria decisamente all'avanguardia,
un’uscita a 16 colori (solo più tardi l'IBM
gridò al miracolo quando propose un
Personal Computer a quattro colori) e la
gestione innovativa di musica e sprite.
Fino all’anno scorso, dunque, è durata
la pacchia; che, a nostro parere, è durata
fin troppo.
Oggi un C/64 dotato di drive 1541
costa, all’utente finale, quasi quanto un
Amiga 500. E’ ben vero che un Amiga
senza secondo drive, nè espansione di
memoria, nè monitor dedicato vale ben
poco.
Tuttavia, volendo considerare un si-
stema completo di stampante e di qual-
che ammenicolo pressoché indispensa-
bile, oggi come oggi il C/64 (ed a mag-
gior ragione un C/128, peraltro non più
presente nei listini ufficiali della casa ma-
dre) non può assolutamente reggere il
passo con ciò che offre la "concorrenza",
sia questa la stessa Commodore (Amiga
e sistemi Ms-Dos compatibili), siano al-
tre marche (Atari, Ms-Dos di vario tipo).
Il prezzo del sistema in possesso del
nostro lettore è senz’altro pari (se non
superiore) a quello di un compatibile Ms-
Dos e può aver senso solo se si consi-
dera che qualche anno fa, al momento
dell'acquisto, un clone IBM costava al-
meno il doppio.
SOLDI, E NON SOLO
La morte del C/1 28. quindi, è dovuta
non solo ad obsolescenza tecnologica ,
ma anche, e soprattutto, a quella com-
merciale. Nessuno, oggi, spende un mi-
lione per entrare in posseso di un C/128
(o C/64) completo: preferisce acquistare
un clone e, un po’ più in là, la stampante
per completare il sistema. L'unico motivo
che spinge il neoutente ad acquistare un
C/64 è il fatto che questo è venduto,
quasi sempre, con il registratore a cas-
sette in omaggio (o quasi) e che si può
fare qualcosina anche utilizzando que-
st’unica periferica, soprattutto nel campo
dei videogames. Spingere l'utente (che
già possiede il solo C/64) ad acquistare,
oggi, anche il drive, può risultare antisto-
rico, a meno che la Commodore non
decida di vendere i suoi 1541 ad un
prezzo non superiore alle 200 mila lire
(IVA compresa, per carità). Ma, in que-
sto caso, si potrebbero (forse) limitare gli
effetti dell’obsolescenza solo nei vecchi
sistemi: chi non possiede un computer,
e desidera, finalmente, acquistarne uno,
farà molto bene i suoi conti prima di
spendere più di mezzo milione per un
C/64 completo di drive.
Commodore Computer Club - 15
SOFTWARE
Ma anche ammes-
so, e non concesso,
che l’utente sia perdu-
tamente innamorato
dei videogames del
C/64 (notate che non
parliamo già più del
C/128?) e degli effetti
sonori impossibili da
realizzare con un Ms-
Dos compatibile, un’al-
tra limitazione provve-
de ad allargare il già
ampio divario tra il
computer ad 8 bit e
quelli, più moderni, a
1 6/32 bit.
Il software, ragazzi,
non è una cosa che si
può trascurare. E’ ben vero che esistono
pacchetti di tutto rispetto che consento-
no di archiviare dati, stendere relazioni e
documenti (perfino libri!) ed effettuare
calcoli in catena. Tutto sta a restare delle
stesse convinzioni anche dopo aver usa-
to, per un solo pomeriggio, pacchetti
analoghi su veri Personal Computer.
La velocità di elaborazione, le raffina-
tezze tecnologiche, l’affidabilità e, so-
prattutto, le potenzialità offerte da un
qualsiasi pacchetto professionale che
AMO IL C/128 PERCHE’...
P remetto che sono un felice possessore di un sistema composto da C/128,
drive 1541, drive 1571, stampante Mps 803, monitor 1901, mouse 1351,
interfaccia seriale Rs-232, Modem 300/1200 baud Hayes compatibile.
Mi rivolgo a tutti gli utenti e non (leggi negozianti) di sistemi Ms-Dos, Amiga,
Atari (ed altro) i quali denigrano fin troppo questa stupenda macchina, relegan-
dola al ruolo di "videogame casalingo".
Personalmente ritengo che non sia da sottovalutare, anche se la carenza di
software dedicato la mette in secondo piano; non bisogna dimenticare che dal
punto di vista h/w è abbastanza completa: uscita 40 / 80 colonne, Rs-232, bus
seriale veloce, grafica da 160 x 200 a 640 x 200 e così via.
Forse il mio è un caso isolato, almeno da quanto leggo su riviste del settore,
ma sono riuscito a procurarmi quasi il meglio di- quanto si possa oggi trovare sul
mercato in fatto di s/w in modalità 128, e per giunta in 80 colonne: Superbase,
Superscript nonché l’eccezionale Geos 128 2.0, tutti rigorosamente originali
(sono contro ogni tipo di pirateria informatica); inoltre posseggo un buon
compilatore Basic 7.0 (Gnome Speed) ed un programma di comunicazione
(Link 128).
A conti fatti, quindi, non vedo questa superiorità schiacciante, come almeno
vogliono far credere, del mondo Ms-Dos nei confronti del mio C/128, visto che
comunque sono in grado di archiviare dati e richiamarli ad una discreta velocità,
redigere documenti di lunghezza superiore alle capacità di un dischetto da 340
Kbytes, fare del Desk Top Publishing casereccio, comunicare su rete telefonica
e così via.
In conclusione esprimo il mio desiderio informatico: Apple Mclntosh II, che è
l’unica macchina per la quale rinuncerei al mio attuale sistema.
(Antonio Rotta - Arco Felice )
giri su un qualsiasi perso-
nal computer mettono in
secondo piano tutte le al-
tre caratteristiche del
C/64, ad eccezione dei
motivi affettivi.
"Fare" D.T.P. con C/128
e stampante Mps-803?
Certo, l’ho fatto anch’io;
ma solo quando di D.T.P.
non si parlava nemmeno e
l’unico programma del ra-
mo alfa-numerico-pseu-
— ■ - do-grafico (Print Master.
insomma) girava timida-
mente sui P.C. quando il
C/64 già offriva, da tempo,
Geos, Print Master, Print
Shop, News fìoom, Music
Shop ed altri ancora.
Paragonare, oggi, le caratteristiche di
Geos 64-1 28 con Ventura Publisher, Pa-
gemakero Pagesetter è una vera follia,
scusabile solo in chi non li ha mai visti
girare.
CONCLUDENDO
Solo chi già possiede il C/64-128 (e
non ha voglia di spendere altri soldi nel
settore informatico) può accontentarsi di
rinviare (perchè di questo solo si tratta)
l’acquisto di un nuovo sistema.
Tutti gli altri, che inizino o sieno a metà
dell’opra, si sbrighino a decidere.
L’obsolescenza è un fenomeno inarre-
stabile che sta colpendo mortalmente i
nostri amati 64-128, giorno dopo giorno
(date un’occhiata agli annunci economi-
ci se non ci credete).
Noi di Commodore Computer Club
abbiamo infatti deciso di parlare an-
cora del C/128 solo fino al gennaio
del 1991 e solo se le richieste dei
nostri lettori saranno sufficien-
temente convincenti.
Del C/64 dovremmo (il condizionale è
d’obbligo) parlare ancora fino al dicem- K
bre del 1991, e sempre a patto che i
lettori, vecchi e nuovi, ce lo consentano.
Le pagine lasciate libere dalle vecchie
tastiere saranno, a mano a mano, sosti-
tuite da argomenti relativi ad Amiga e
(se necessario) ai sistemi Ms-Dos.
16 - Commodore Computer Club
□
64/128
18 - IL C/64 SI TRASFORMA IN OROLOGIO - SVEGLIA
Il piccolo computer della Commodore (ed il suo fratello "maggiore", il C/128) dispone di due circuiti ..
integrati, non molto conosciuti dalla stragrande maggioranza degli utenti. In tali dispositivi sono
incluse alcune funzioni decisamente interessanti; ci riferiamo all’orologio, capace di tener conto
perfino dei decimi di secondi, ed alla sveglia ad esso collegata. Inutile dire che tale contatempo
funziona per proprio conto e, per farlo "venire alla luce", occorre attivare una routine in Interrupt che
esamini, ogni sessantesimo di secondo, i registri del dispositivo. Per rendere l’elaborazione interes-
sante e completa viene presentata una procedura davvero complessa, ma relativamente semplice
da digitare, in grado di trattare, contemporaneamente, raster, interrupt, sprite ed attivazione dell’o-
rologio sveglia. Un programma di sicuro interesse, almeno per i lettori più in gamba.
29 - HARD COPY PER C/128
Riportare su carta la pagina grafica è una delle funzioni più richieste dall’utenza del C/1 28. Di solito,
però, bisogna ricorrere a routines in linguaggio macchina che, a parte la "seccatura" della difficoltà
di digitazione, possono occupare aree di memoria non sempre libere o determinabili a priori. Viene
presentata una procedura che, ricorrendo esclusivamente ad istruzioni Basic, consente di riportare
su carta una qualsiasi pagina grafica del C/128.
Nessun albero viene abbattuto per gli inserti di Commodore Computer Club, stampati su carta riciclata al 100%
LE AVVENTURE DI
bazia (3 e A file)
idra
acro
by M. HielTà
B. DeToffoli
Commodore Computer Club - 17
IL C/64 SI TRASFORMA
IN OROLOGIO - SVEGLIA
•lese
C’è di tutto: sprite oltre il bordo, interrupt, raster e perfino l’utilizzo
di un circuito elettronico poco noto
di Paolo Monti ed Edmondo Fichera
Il C/64 ed il
C/128
dispongono
di un paio di
circuiti
elettronici
molto
sofisticati
A molti utilizzatori sarà senz'altro capitato di
avere un’idea improvvisa per un program-
ma e di mettersi subito alla tastiera, senza però
tenere conto di un elemento piuttosto importan-
te: il tempo.
Chi si accinge ad editare un programma rìon
sempre ha l'intero pomeriggio a disposizione,
magari a causa di altri impegni, ed è quindi
costretto a guardare in continuazione l’orologio,
perdendo così il "filo" e la concentrazione.
Alle volte può anche capitare che, essendo il
programma particolarmente interessante, il pro-
grammatore si lasci prendere dall’enfasi della
digitazione e perda completamente la cognizio-
ne del tempo, dimenticandosi addirittura di ave-
re qualche importante appuntamento.
E’ così che abbiamo deciso di venire incontro
alle esigenze di coloro che, pur essendo som-
mersi da altre occupazioni, non esitano a dedi-
care parte del loro prezioso tempo al computer.
Il programma di querste pagine, infatti, visua-
lizza sul bordo inferiore dello schermo un preci-
so orologio dotato di sveglia programmabile a
piacere. I vantaggi che ne derivano sono nu-
merosi.
O non è necessario distogliere lo sguardo da
ciò che si sta digitando:
O grazie alla sveglia programmabile risulta "im-
possibile" saltare gli appuntamenti;
O essendo situato sul bordo, e non nell’area
video, l’orologio non sottrae nemmeno una li-
nea allo schermo;
Inoltre è intuibile che il programma si rivela
interessante anche dal punto di vista didattico,
oltre che pratico, visto che utilizza tecniche di
interrupt e di raster, gestisce le CIA e gli sprites
nonché di alcuni fondamentali registri del Vie II.
I due circuiti di adattamento d^lle interfacce
del C/64 (le CIA) oltre a gestirne le linee in
ingresso e in uscita, possiedono un orologio
completo di ore, minuti, secondi e, addirittura,
decimi di secondo.
! Parametro
CIA 1
JCIA 2
Decimi
56328
56584
Secondi
56329
56585
* •
Minuti
56330
j 56586
Ore e a.m./p.m.
56331
56587
I Parametri e locazioni delle CIA nel C/64 |
*
I parametri dell’orologio sona, distribuiti in
quattro registri consecutivi che, per le rispettive
CIA, corrispondono alle locazioni indicate in
tabella.
Nel nostro programma verrà usato il primo
dispositivo.
Lojxju £eiJtoU
xiav/e bui
flood...
filerà ! fPe*, fy\Arcn & , cojm & tate
lini x& jcL ccvuxiì&u,
Cfueòtcr i
18 - Commodore Computer Club
COPIALO PER TELEFONO
Anche i listaci presenti in queste pagine possono
esser tirati gììfper mezzo dei modem; se, ovvia-
mente, ne possedete uno.
La procedura per collegarsi con la nostra banca
dati (attiva 24 ore su 24) è riportata su altra parte
della rivista.*»*? 9.
Chi non possiede il modem (che aspettate a
procurarveldt?ypuò tuttavia richiedere il dischet-
to, contenenie il software, presso il nostro servi-
zio arretrati. -,*■
Per impostare i parametri deH’orario è suffi-
ciente trascrivere i valori desiderati nell’oppor-
tuno registro, tenendo però conto di alcuni ele-
menti: innanzi tutto si deve sapere che se si
effettua una scrittura nel registro delle ore, l’o-
rologio si bloccherà istantaneamente e ripartirà
solo al momento di una scrittura nel registro dei
decimi di secondo, mentre se si scrive prima in
un altro registra verrà eseguita la scrittura, sen-
za l’arresto dèi dispositivo.
L’utente hà^.così la possibilità di settare a
piacimento l'orario, e di farlo partire all’istante
desiderato, sé avrà l’accortezza di modificare i
registri partendo dall’ora e finendo con i decimi
di secondo. '
Anche in lettura si ha una situazione analoga;
se, infatti, leggiamo il registro dell’ora, verranno
simultaneamente congelati gli altri tre registri
nel cosiddetto circuito Latch. In pratica questo
circuito fa sì che le quattro locazioni di memoria
sopra menzionate rispecchino costantemente il
contenuto der registri all’istante della lettura del-
le ore, mentte in realtà l’orologio continua a
contare normalmente. Con ciò l'utente può leg-
gere con tutta calmà i vari registri fino a che, con
una lettura dei decimi di secondo, il Latch verrà
sbloccato rispecchiando così i valori correnti
dell’orario.
Se viene letta un qualsiasi altro registro prima
di quello delle ore, esso viene letto al volo, cioè
presentando^ valore istantaneo del parametro
scelto (minuti, secondi oppure decimi).
Ovviamente, per leggere e scrivere nei regi-
stri, si usano le istruzioni Basic Peek e Poke o
quelle assembly Lda e Sta.
Passiamo ora a esaminare come, cioè in
quale formato vanno trascritti i parametri nei
registri.
DALLA TEORIA ALLA PRATICA
Le quattro locazioni considerate hanno una
particolarità: non funzionano come tutte le altre,
ma vanno considerate come spezzate in due,
cioè nei quattro bits alti e nei quattro bassi; i
primi rappresentano le decine del numero scrit-
to, i secondi le unità.
~ ■■
BIT
7654 71 3210
0011 0101
= 35
Infatti, come vediamo nello schema, i bits più
alti contengono il numero binario 3, mentre i più
VIETATO Al MINORI
E’ probabile che i neo-utenti di computer non
riescano a ben comprendere l'utilità della proce-
dura software descritta nelle presenti pagine.
Questa è infatti destinata a coloro che sono già
padroni delle principali tecniche di programma-
zione e desiderano approfondire il modo in cui
un elaboratore organizza i vari dati aù’interno
della memoria.
Il programma, pertanto, rappresenta un invito ai
lettori più esperti, soprattutto a coloro che, con-
siderando il listato come una base di partenza,
riescano a pervenire a procedure più interessan-
ti e capaci, magari, di offrire applicazioni di più
ampio respiro.
Se hai incominciato da poco, comunque, non
scoraggiarti! Tutti coloro che, oggi, vantano una
particolare competenza nei campo dell’informa-
tica hanno iniziato con un banale Print "Pippo".
Perchè non dovresti riuscire anche tu?...
Per settare
correttamente
l’orologio e
la sveglia è
necessario
attenersi
alla
procedura
descritta per
evitare
"regolazioni"
imprecise *
Commodore Computer Club - 19
Il settimo bit
della
locazione
56331 è
incaricato di
tener conto
del formato
AM/PM
bassi il numero 5. Quindi; per scrivere il numero
correttamente, non dobbiamo scrivere (per i
minuti, ad esempio)...
.Poke 56330, 35
...bensì.,...
Poke 56330, 3 * 16 + 5 * : ..."
...poiché solo così il Sverrà scritto nella metà
(in gergo: nibbio) alta del byte e il 5 in quella
bassa.
La locazione delle ore presenta una piccola
differenza: in essa, infatti, il bit 7 fornisce l’indi-
cazione AM/PM; se il bit è a uno, l’ora è da
considerarsi pomeridiana (dopo mezzogiorno);
viceversa è antimeridiana (prima di mezzogior-
no).
Esempio;
Bit V
7654
3210
1001
0001
Poke 56331, 128 + (1 * 16) +1
Con ciò avete inserito, nel registro, una deci-
na ed una unità, che insieme indicano le ore
undici ; avete inoltre settato l’indicatore su PM,
quindi si intenderanno le undici di sera.
Perchè il dispositivo funzioni correttamente
c’è da tener presente un’ultima cosa: il disposi-
tivo necessita, per problemi di sincronismo, del-
la frequenza della corrente di rete che, in Italia,
è di 50 Hertz; dal momento che la CIA è settata
per default sui 60 Hertz (paesi angloamericani)
bisogna settare a uno l’apposito bit della loca-
zione 56334 ( 56590 per CIA 2), e per la preci-
sione il bit 7, mediante una semplice...
Poke 56334, Peek (56334) Or 128
Se lasciassimo il bit a zero, accadrebbe che...
un secondo non durerebbe un secondo, ma
molto di più!
ALLARME!
Come accennato inizialmente, il programma
fa uso di un’altra caratteristica del dispositivo
TOD (Time Of Day- tempo del giorno = il nostro
orologio!) e cioè óeW allarme programmabile.
Infatti il registro 15 della CIA 1, allocato in
56335, (56591 per CIA 2), contiene un bit, l’ot-
tavo,, che, se impostato, permette di regolare
l’allarme agendo sulle medesime locazioni pri-
ma esaminate per l’orario. Anche il formato con
cui inserire il parametro resta immutato, come
anche la possibilità di determinare se si tratti di
ora pomeridiana o antimeridiana mediante il bit
7 del registro delle ore.
Un esempio: . 1 ■- **
Supponiamo di voler programmare la sveglia
alle 7 e 30 del mattino.
Poke 56335, Peek (56335) Or 128 : Rem imposta
modo sveglia
Poke 56331 , 7: Rem AM + 0 decine e 7 unità
Poke 56330, 3* 16 + 0: Rem 3 decine 0 unità
Poke 56329, 0: Rem 0 secondi
Poke 56328, 0: Rem 0 decimi di secondo
Una volta settata la sveglia, si riporta a zero
il bit, prima impostato, con...
Poke 56335, Peek (56335) And 127
...per riavere il controllo dell'orario; nell’istan-
te in cui l’orario eguaglia il valore inserito nell’al-
larme, il dispositivo imposta ad uno il terzo bit
della locazione 56333 (56589 per CIA 2) per
avvisare l’utente, il quale agirà di conseguenza;
è possibile far sì che il dispositivo generi anche
una richiesta di interruzione, oltr,e che settare il
bit appena esaminato, permettendo, magari,
l’esecuzione automatica di una routine apposi-
tamente scritta. _ "
Per ottenere questo è sufficiente abilitare l’in-
terruzione d’allarme scrivendo a uno contempo-
raneamente il bit 7 e il bit 2 della 56333 median-
te l’istruzione...
Poke 56333, Peek (56333) Or 132
La locazione 56333 contiene infatti un regi-
stro vitale della CIA1 e cioè il registro di controllo
degli interrupt provenienti dai vari dispositivi
dell'Interfaccia; vi sono cinque diverse sorgenti
di interruzione nelle CIA e precisamente:
1) timer a ' . .
"Cotne òftdv-i’ ò
l.>>\ 'Ai
-r.'vV ;
20 1 , Commodore Computer Club
2) timer b ,c
3) allarme
4) porta seriale
5) «ag
Esse sono ‘disposte nel registro come nella
tabella riportata in queste pagine.
Bit.
Contenuto
0 ■
limerà
1
.
Timer b
2.,.
Allarme
3
Ps
4
Fig
or
5
non usato
ah
non usato
7* h
Imposta / Cancella
Quando scriviamo in questo registro, abbia-
mo la possibilità di mascherare, o meno, una
qualunque di Queste sorgenti, facendo sì che,
al momento della richiesta di interruzione, que-
sta possa giungere fino al microprocessore
(che si "interromperà'’) o venga bloccata.
Per abilitate l’interruzione bisogna, come
avrete intuito; settare a uno contemporanea-
mente sia il bit della sorgente prescelta, sia il bit
7; se scriviamo a uno solo il bit della sorgente,
essa verrà màécherata e non provocherà inter-
ruzioni della CPU.
In lettura, ifr qualunque caso, la sorgente di
interruzione, àì momento della richiesta, setterà
almeno il proprio bit della locazione 56333,
cosicché basta leggere costantemente il regi-
stro e controllare quale sorgente chiede l’inter-
ruzione.
Nel nostro caso, se controlliamo il bit 2, ci
accorgiamo di sicuro se è scattato l’allarme.
ni
Ttek
IL DEMOftN BASIC
Il nostro ptetjramma Basic, unito alla routine
in linguaggio macchina, provvede all’esecuzio-
ne di tutte le regolazioni finora esaminate; l’u-
tente dovrà solo inserire l’ora corrente e la
sveglia, da digitare nel formato HHMMSS cioè
usando due cifre per ciascun parametro senza
separazione tra l’uno e l’altro; inoltre le ore
vanno da 00 a 23, tipico dei paesi europei, a
differenza di quelli angloamericani che presen-
tano la differenza tra AM e PM.
Per esempio, se alla richiesta della sveglia
digitassimo 033000, ci sveglieremmo nel cuore
della notte!
Il programma visualizza, sul bordo inferiore
dello schermo, l’orologio che indica l’orario ap-
pena settato e chiede di premere S per farlo
partire; una volta azionato, non ci rimane che
digitare New e iniziare serenamente la digita-
zione del nostro nuovo programma, certi che, al
momento giusto, il nostro fedele C/64 ci avvise-
rà che, ahimè, il tempo è scaduto.
LA ROUTINE L. M.
*% *•
Passiamo ora ad una descrizione più tecnica
e dettagliata del programma Basic e della rou-
tine l.m. La tecnica per far sparire il bordo
inferiore e superiore è stata già ampiamente
esposta dal Lorenzo Emilitri su un altro numero
della rivista e ci sembra quindi superfluo dilun-
garci su essa: basti ricordare che tale tecnica si
basa sul fatto che si inganna il Vie facendogli
credere di aver già disegnato il bordo.
Inoltre è stato «necessario spostare l’editor di
schermo nel banco Vie 3 (posizionato da 491 52
a 65535), visto che il raster riempirebbe la parte
di bordo ora resa visibile con il contenuto del-
l’ultima locazione del banco attuale del Vie;
questa locazione, normalmente, è la 16383,
cioè nel bel mezzo della Ram Basic, e per
ragioni estetiche conviene che contenga zero in
modo che non compaiano delle bande nere.
Così facendo, però, i programmi Basic dovreb-
bero terminare ben prima della 16383, renden-
do inutilizzabile oltre metà della Ram disponibi-
le. Cambiando il banco del Vie dallo 0 al 3,
La locazione
56334 è di
vitale
- v
importanza
perla
"scansione"
del tempo
v : La
manipolazione
del Raster
consente di
visualizzare
gli sprite sul
bordo del
video
vi è • aJ v 1
’
l’ultima locazione del banco diviene la 65535 e
azzerarla non comporta alcuna conseguenza.
I dati per i "disegni" delle dieci cifre necessa-
rie per visualizzare l’orologio (da 0 a 9) e del
carattere separatore del doppio punto (:) ven-
gono prelevati direttamente dalla Rom dei ca-
ratteri e riversati in una zona Ram a cui, poi,
indirizzeranno i puntatori agli sprites che ora si
trovano a partire da 49152 + 2040 a 49152 +
2047. Le righe del programma Basic che com-
piono tale operazione sono quelle da 20 a 40:
dapprima viene azzerata una zona di memoria
che possa contenere undici blocchi da 64 bytes
ciascuno, poi gli undici blocchi vengono riempi-
ti, ognuno, con solo 8 bytes corrispondenti ai
dati di ciascun carattere, che gli sprites mostre-
ranno in seguito, per di più ingranditi.
II programma Basic, inoltre, imposta i para-
metri del SID e controlla che non vengano inse-
riti dati errati, come ad esempio la digitazione di
76 alla richiesta dei minuti.
La routine in l.m. è divisa ovviamente in due
parti, la seconda delle quali gira sotto interrupt.
La prima parte provvede a spostare i punta-
tori degli interrupt, ad abilitare le interruzioni di
raster, a ingrandire e posizionare gli sprites, a
copiare i caratteri nel banco 3 del Vie e, infine,
ad inizializzare alcune locazioni.
La seconda parte si occupa di far scomparire
il bordo, di controllare l’interruzione d’allarme,
di consultare i quattro registri dell’orario (e por-
ne i valori letti nei puntatori agli sprites), e di
saltare all’inevitabile $EA31 .
Vi è infine una subroutine che viene chiamata
al momento dell’allarme e fa sì che venga pro-
dotto un tipico BIP - BIP che dura undici secondi
(dal secondo 0 al secondo 10). Questa parte
funziona in modo molto semplice: là routine di
interrupt viene chiamata dal raster ad ogni
schermata (e quindi con una frequenza di circa
50 Hertz). Se è scattato l’allarme, anche la
subroutine del BIP - BIP viene chiamata 50 volte
ogni secondo; noi non abbiamo fatto altro che
incrementare una locazione, ad ogni chiamata,
sapendo solo che, quando fosse arrivata al
valore 50 voleva dire che era passato un secon-
do; inoltre abbiamo ulteriormente suddiviso i
cinquanta cinquantesimi di secondo in modo da
produrre un doppio BIP accendendo o spe-
gnendo il suono agli opportuni valori dei cin-
quantesimi di secondo.
Un’altra locazione controlla che ciò avvenga
solo per undici secondi. Analizzare il disassem-
blato aiuterà a capire meglio il funzionamento
della subroutine.
Ed ecco qui che spunta fuori una curiosità che
riteniamo siano ben pochi a conoscere, com-
presi anche i più esperti programmatori in l.m.
Se si pone la sveglia ad un qualsiasi orario,
ma con i secondi a 00, l’allarme suonerà anche
per il minuto successivo a quello stabilito.
Questo dipende dal fatto che quando i secon-
di del minuto in cui è suonato l’allarme passano
da 59 a 00, il dispositivo TOD impiega qualche
frazione di secondo per incrementare di uno
anche i minuti e, per tale durata, l’orario risulta
identico a quello del minuto precedente; il regi-
stro di interruzione della CIA, allora, ri-resetta a
uno il bit dell’allarme e il nostro programma
riesegue la subroutine del BIP - BIP.
Questo, però, non è affatto un inconveniente,
anzi è un buon rimedio per ricordare (a chi si
fosse soffermato sulla tastiera per concludere
"quell’ultima riga di programma”) che è proprio
ora di smettere.
Comunque, se questo fatto invece creasse
dei fastidi, è ovviamente possibile far sì che
l’allarme suoni una sola volta. .9
E’ infatti sufficiente porre la sveglia con i
decimi di secondo non a zero, ma a 4 oppure a
5, per dar tempo al TOD di incrementare, in tale
lasso di tempo, anche i minuti; oppure, nel caso
del nostro programma, basta settare la sveglia
con i secondi diversi da zero, ad esempio a uno:
in questo caso l’allarme suonerà una volta sola,
ma un secondo dopo il minuto preciso, cosa
questa di insignificante rilevanza^
Per concludere dobbiamo confessare una
piccola pecca del programma in linguaggio
macchina: esso infatti, nella parte che gira sotto
interrupt, risulta di qualche ciclo più lungo del
normale. —
4
Questo fa sì che ogni tanto, nel momento in
cui si impartisce la Sys di partenza, il program-
ma. non parta sincronizzato e dopo qualche
millesimo di secondo si blocchi.
Nonostante le probabilità che il programma
non parta al primo colpo siano decisamente
piccole, (circa 1 volta su 1 5), ci è parso comun-
que doveroso informarne i lettori, i quali non
hanno nulla di che preoccuparsi, visto che l'in-
chiodamento non è mai definitivo.
Basta infatti eseguire le seguenti operazioni
per riavere il controllo del cursore:
su: *
1 ) battere Run / Stop + Restore
A questo punto si dovrebbe notare un cam-
biamento di ciò che è visibile sullo schermo.
2) digitare ALLA CIECA : Poke 648, 4 e batte-
re il tasto Return.
PER I PIU’ BRAVI
. . . .10
L avorando con Nnterrupt può capitare di
scrivere routine molto lunghe e comples-
se.
In questi casi sorge immediatamente una
difficoltà, legata direttamente alla stessa tec-
nica che figura alla base della gestione del-
Plnterrupt.
In pratica, ogni sessantesimo di secondo il
computer interrompe qualsiasi operazione e
"salta" ad eseguire una particolare routine
(posta, nel caso del C/64, a partire da $EA31 )
che sovrintende a particolari funzioni, vitali
per l’elaboratore.
Dal momento che tale routine necessita di
un certo tempo per essere eseguita, è eviden-
te che questa "deve" essere sufficientemente
breve per fare in modo che il calcolatore
elabori anche il programma dell’utente.
In altre parole, supponiamo di suddividere
la durata di un sessantesimo di secondo in
dieci parti eguali. Se la routine di Interrupt
presenta una durata di tre parti, vuol dire che
«q
Compariranno la scritta Ready e d il cursore;
a questo punto potete ridare il Run e, a meno
che non siate la sfortuna fatta persona, dopo
aver reinserito ora e sveglia, comparirà final-
mente il vostro stupendo orologio digitale.
A nostro parere lo spiacevole inconveniente
è dovuto alla eccessiva lunghezza (che non ci
è stato possibile ridurre, pena la perdita di no-
tevoli prestazioni del programma) della routine
di interrupt; ma non essendone certi, se qualcu-
no scoprisse che il motivo è un altro (e trovasse
un rimedio efficace), potrebbe sempre comuni-
carlo ai lettori (noi compresi), mediante la rubri-
ca della posta di C.C.C. o in un apposito artico-
.lo.Quello che (speriamo) verrà scoperto sarà
comunque, a nostro parere, di notevole valore
didattico e insegnerà qualcosa anche ai pro-
grammatori più esperti.
il computer dedica, in definitiva, il 70% del
tempo per elaborare il programma dell'utente
ed il 30% le "proprie" routines.
Se,' invece, l’Interrupt richiede 4. parti, il
tempo di elaborazione dell'utente scende al
60%. Al limite, con una durata di Interrupt di
10 parti, non vi sarà tempo per elaborare il
programma utente ed il computer penserà
solo... a se stesso!
Come fare, quindi, per dirottare la routine
di Interrupt e fare in modo che elabori nostre
routines l.m. lunghe e complesse?
Semplice: è sufficiente "spezzare” tali rou-
tines ed elaborarle una alla volta, interruzione
dopo interruzione. Supponendo di voler trat-
tare due routines (alfa e beta) troppo lunghe
per essere elaborate in un solo ciclo, alla
prima richiesta di Interrupt verrà elaborata
alfa, alla successiva beta: poi di nuovo alfa e
così via.
Una qualsiasi locazione di memoria Ram
può funzionare da "deviatore".
Non bisogna
dimenticare
che, al
termine di
una routine
che altera
/’ interrupt ;
l’ultima
istruzione
deve essere
un "salto" a
$EA31
I ceneri si |>°sà ; sla corre*
do ancora mollo veloce, quand
Ed ora on'allra! Helb,
Primo , cosà succede
Commodore Computer Club - 23
X . L'
cP*
1 rem •••••••••••••••••••••••»•••••••
8 rem •• bordar clock
3 rem •• di
4 rem ••paolo monti & edmondo Fichera
5 rem •• copyright 1990
6 ram •••••••••••••••••••••••••••••*•
10 print "a”; : printtabCB)"»- aspatta 399”
15 print "caricamento dati"
20 b* 49152*2040 : b*53248«- (48*0) : q*0
25 f or i*0to( 64*11) : pokaa+i ,0: naxt
30 poke55334 , 0 : pokal , peak ( 1 )and251
35 Fore-0tol0:forw-0to7
37 pokea-K64»a)-Kii>«3) , peek(b+w*-Ce«8) 1
38 naxtw.a
40 pokal , peak C 1 )or4: poke56334 > 129
45 c*0 : Fori“0to399: reada : print "■~i
47 poke49152«-i,a:c*c*a:naxt
50 ifc<>49507thenprint "errore" : and
55 81*54272 : pokesi+24 , 15
57 pokesi+l , 240: pokesi+6, 240
60 poke49152+2046 , 42 : poke49152+2047 , 42
65 print "fl”
70 input "inserì re orario C hhmmss 1 " ; hS
7S if len(hSX>6then70
00 or-0:aosubl80: ifar<>0than70
85 gosub200
90 print "a”
95 input "inserirà sveglia (hhmmss)";hS
100 iflenChSX>6then9S
110 ar*0: gosubl80: if er<>0then95
120 pokeS6335, peekC 56335 lor 128 : oosub 200
122 poke5633S, peak (56335 land 127
• 125 s U s491S2
130 print’^rami ’s* par far ” ;
133 prlnt"partira l'orologio"
135 getaS:lfaS-""thenl35
140 ifaS-"s"thanl50
145 goto 135
1S0 poka5632B,0: print "okl print
179 end
180 fori-lto6:zSCi)-mldSChS, i.l)
182 zC i)-valCzSC il): naxt
185 hr-z(l)*10*z(2)
187 ifhr<0orhr>23thaner*l : return
190 m-zC3)*10-z(4):a-zC5)*10*zC6)
192 ifm<0orm>59ors<0or3>59thanar-l : return
195 return
200 poke56329, z(5)*16«-z(6)
205 poke56330, z(3)*16*z(4)
210 pm-0: ifhr>*12thenpm*128: hr-hr-12
213 ifhr-0thenhr-12
21S ql-int Chr/10) : q2«hr-(ql*10)
220 poke56331 , pm+Cql*16Xq2
225 return _ i
997 rem ••••••••••••••••••**•••••••
938 ram ••• data routine l.m. •••
999 rem ••• •••
1000 data 120,169,157,141, 020 , 003 , 169
1001 data 192,141,021,003,169,001,141
1002 data 026,208,173,017,208.041,127
1003 data 141,017,208,169,248,141,018
1004 data 208» 169. 000.170,168^05,129
1005 data 193,153,000.208,130.200,153
) 'ivv j fvr-'' .
24 - Commodore Computer Club
1033 data 101 . 252. 141 . 2S3, 199, 130. 032
103*1 data 066 . 193 , 024 , 101 , 253 , 201 , 0*1?
1035 data 144,011 ,056.233.010. 141. 2S2
1036 data 199.230,253,199.016.003.1*11
1037 data 252, 199, 173, 010, 220 , 032,054
1036 data 193, 032, 066 , 193, 1*11 , 2S1 , 199
1039 data 138, 032, 068, 193, 141 . 250, 199
10*10 data 1 73, 009 ,220, 032, 054. 193,032
10*11 data 868, 193 , 141 , 2*13, 199, 138 , 032
10*12 data 068.193,141,2*18.199.173.008
1043 data 220. 169, 001 . 141 . 025 . 208 , 076
1044 data 049.234.133,251.041.015.170
1045 data 16S, 251, 04 1,240, 074, 074, 074
1046 data 074,096,024.105.032.096.230
1047 data 163.165,163,201,003,176,007
1048 data 169.017,141,004,212,016.041
1049 data 201.006,176,007,169.016,141
1050 data 004,212,016.006,201.009.176
1051 data 245, 144,232, 165, 163, 201, 0S0
1052 data 144,018,230, 164, 165, 164,201
1053 data 011 , 144,006, 169,000, 133, 002
1054 data 133,164,169,000.133.163.096
1055 data 136,000,120,000.088,000,072
1056 data 000,040,000,024,000,104.000
1057 data 056
1058 and
1006 data 000.208.200.192.016.206.240
1007 data 169.005.157,039.206.232.224
1008 data 008.208,248, 169, 2S5, 141, 023
1009 data 206.141.029.208.141.021.208
1010 data 169.000.133.002.133,163.133
1011 data 164.162.000.160.016.169.003
1012 data 133.001,189.000.208,072,169
1013 data 004,133.001,104.157.000,208
1014 data 232.208.237.238.088.192,230
1015 data 097. 192, 136, 208, 228, 169, 05S
1016 data 133,001 . 169.208. 141 .088, 192
1017 data 141. 097, 192, 169, 148, 141. 00e
1018 data 221.169,196.141,136.002.169
1019 data 000,141.255.255.169.128,141
1020 data 014,220, 169, 147, 032, 210, 2SS
1021 data 169,042, 141,254, 199, 141, 2SS
1022 data 199.088.096.173,017.208.041
1023 data 247, 141 .017.208, 162.048,202
1024 data 208.253.009.008.141,017.208
1025 data 165, 002 .240 . 003, 032, 072, 193
1026 data 173.013.220.041,004.240.004
1027 data 169.001.133,002.173,011.220
1028 data 170, 016 . 010, 169 . 001 . 133. 2S2
1029 data 169.002.133.253.016.006,169
1030 data 000.133,252,133,253,138.041
1031 data 127.201,018.208.002.169.000
1032 data 032,054, 193,032,068. 193,024
Commodore Computer Club - 25
+ M ;
DI SASSEMBLATO BORDER-CLOCK
di
E. Fichera Douglas & Paolo Monti
Copgright 1990
c 000 sei
Ida ttS9d
modifica
sta *0314
i puntatori
Ida MSc0
di IRQ
sta S0315
Ida «S01
abilita le
sta Sd01a
intarrupt di rastsr
Ida Sd011
posiziona
and #S7f
1 * interruzione
sta Sd011
alla
Ida »Sf8
linea 24B (Sf8)
sta Sd012
dello schermo
Ida «S00
azzera registri
tax
tag
C021 Ida Sciai, g
legge dalla tabella
sta Sd000,g
a scrive la posiz.
’x* dello sprite
txa
azzera acc.
. inu
sta Sd000,g
scrive ’0' nelle
’g a dello aprite
ing
prossimo sprite
CPU
«S10
ha finito?
bne
Sc021
no, salta
Ida
«105
colora di verde
.C033
sta
Sd027 , x
tutti gli sprites
inx
cpx
#108
ha finito?
bne
Sc033
no, salta
Ida
#*ff
• *o
sta
Sd017
espansione vart .
sta
Sd01d
espansione orizz.
sta
Ida
Sd015
«S00
abilita B sprites
sta
*02 •
azzera avvisatore
di allarme
sta
Sa3
azzera contatore
50esimi di secando
sta
Sa4
azzera contatore
dai 10 secondi di
durata allarme
ldx
#S00
prepara copia
ldg
#*10
caratteri
. c052
Ida
#*03
abilitabROM
sta
*01
caratteri
. C056
Ida
Sd000,x
legge dàto caratt.
. c059
pha
e lo salva
Ida
#S04
riabilita zona RAM
sta
S01
da Sd000-a Sffff
pia
riprende dato
. c05f
sta
Sd000 , x
lo scrive in RAM
. C062
inx
d^to successivo
P»J lohfcftt j al» £|IVi piloti discolo*
... cerio che qoeslo volo
òlleft&metìlb e oh
d egeh
voi ,
26 - Commodore Computer Club
00 , 00 , 0 *;
Ih effetti/ coh là vittori* d» Ice.
hnàh d GÈ£ il Volo Si conclu-
de ih modo |x>co ortodosso...
Nei giorni successivi tuttavia si
SVofgorjo voli di addestramento
dall'esito certamente, t>iù briltan
te, cometa far beh sberareif
buon Primo sull'esito della «ara.
H - -i ,
L « . « . ». . .ti .1 MWII J.
l»orho...
Seguono le due portaerei sfidan
h,cbe starno ultimando t tre*
t*r*hvi ...
bne $c052
Ine 9c058
ine 9c061
dey
bno 9c0S2
Ida «937
sta 901
Ida «9d0
sta Sc050
sta 9c0Sl
Ida #994
sta Sdd00
Ida #9c4
sta 90288
Ida #900
sta 9FFFF
Ida S 980
sta Sdc0e
Ida «993
jsr 9fFd2
Ida N92a
sta 9c7Fa
sta 9c7FF
eli
rts ,
{controlla se ha
{Finito la •pagina*
{incrementa 'pagina*
{di lettura
-, incremsnta 'pagina*
{di scrittura
;ha Finito?
{no, salta
{ripristina il
{ valore di deFault
{ripristina 'pagina*
j in lettura ,
;e in scrittura
{abilita banco 3
;del UIC
{sposta 1 'editor
{di schermo nel ,
{banco 3
{azzera ultima
{ locazione banco 3
{Spagne il
{ TlflER 0
{pulisca lo schermo
; CSHIFT+CLR/HOME)
{posiziona gli
{Spritss 7 e 8 sui
; ‘due-punti *
ROUTINE SOTTO INTERRUPT
Routine chs Fa scomparire il bordo
c09d Ida Sd011
and «9F7
sta Sd011
ldx «930
c0a7 dex
bna 9c0a7
ora «908
sta 9d011
Ida 902
bsq 9c0b6
Jsr 9cl48
c0bB Ida 9dc0d
and «904
beq 9c0cl
Ida «901
sta 902
c0cl Ida 9dc0b
tax;
bpl 9c0dl
Ida «901
sta 9Fc
setta il modo
24 righe
ciclo di ritardo
{risetta il modo
{25 righe
{controlla ss dove
;Far suonare
{ l 'allarme
ino, salta avanti
;si’, esegua routine
{ legge registro di
{controllo interrupt
{e* scattato
{ 1 * allarme?
;no, prosegue
{si*, attiva registro
{avvisatore allarma
{ legge regista ore
ilo pone in x
{salta se a * Ah
{scrive una decina
;n#l registro decine
Commodore Computer Club - 27
Ida
**02
sta
SFd
bpl
Sc0d7
c0dl
Ida
*S 00
sta
Sfc
sta
*fd
C0d7
txa
and
•S7f
cmp
«S12
bne
SC 0 B 0
Ida
*S00
C080
J» r
Sci 36
Jsr
*cl44
eie
adc
Sfc
sta
Sc7fd
txa
jsr
Se 144
eie
adc
Sfd
cmp
*S2a
bcc
Scl02
sec
sbe
*S0a
sta
Sc7fc
ine
Sc7fd
bpl
Se 105
cl02 sta
Sc7fc
scrive due unita*
nel registro unita*
salto Forzato
scrive zero
in decine
e unita'
riprende ora
azzera Afl/Ptl
confronta con le 12
salta se e' diverso
salta alla routine
che separa decine e
unita* in A e X
salta alla routina
che aggiunge S20
aggiunge o 0 o 1
scrive in decine
prende unita’
aggiunge S20
aggiunge o 0 o 2
confronta con le 10
salta se > di 10
altrimenti
sottrae 10
e scrive in unita’
e incrementa decine
salto forzato
scriva unita’
C10S
Ida
Sdc0a
jsr
Scl36
J st-
Scl44
ata
txa
Sc7fb
Jsr
Scl44
sta
Sc7fa
Ida
Sdc03
J sr
Se 136
jsr
Scl44
sta
txa
Sc7f B
jsr
Scl44
sta
Sc7f B
Ida
Sdc08
Ida
»S01
sta
Sd019
jmp
Sea31
cl36
sta
Sfb
and
*S0F
tax
Ida
SFb
and
*Sf0
lsr
lsr
lsr
lsr
rts
Cl44
eie
adc
**20
rts
SUBROUTINE
cl48
ine
Sa3
Ida
Sa3
cmp
*S03
bea
Scl57
C150
Ida
•SII
sta
Sd404
bpl
Se 180
C1S7
cmp
•S06
bea
Scl62
clSb
Ida
•S10
sta
Sd404
bpl
Sci 68
cl62
cmp
•S09
bea
Scl5b
bcc
Se 150
cl6B
Ida
Sa3
cmp
•S32
bcc
SclB0
ine
Sa4
Ida
Sa4
cmp
#S0b
bcc
Scl7c
Ida
*S00
sta
S02
sta
Sa4
cl7c
Ida
• S00
sta
Sa3
c!80
rts
TABELLA
CIBI 88 00 76 00
clB9 28 00 1B 00
legge i minuti
separa
aggiunge S20
scrive decine
prende unita’
aggiunge S20
scrive unita’
legge secondi
scrive decine
scrive unita *
sblocca il latch
conferma
1 ’ interrupt
; salva registro
; separa le unita' e
;le pone in X
; riprende registro
; separa decine
;le sposta sul
; nibbio
; di destra *
• . !
; ritorna
I
{aggiunge *20 per
{puntare all’area
{ sprites
•
DI SUONERIA
»
{incrementa S0esimi
{pone in A i SCesimi
{confronta con 3
;salta se > di 3
*
•
{accende suono
; salto forzato
{confronta con 6
; spegno suono
;salto forzato
{confronta con 3
; se a ’ > non suona
; se e ’ < suona
{legge 50ssiml
{Siamo a 50 50esimi?
; no , salta
;increm. contatore
;ha suonato per 11
; secondi?
{no, salta
;se si* azzera
{ l 'avvisatore
; e il contatore
i
{azzera 50esiml
5B 00 4B 00
68 00 38 00
i«C> - r » •
Irvs^iegètìlmehle^lcuhi èerei
soho già »h volo 6 compiere,
& voi ottoni ...
28 - Commodore Computer Club
Usr! fi è cjuei^ jef sobo
hostri ? E' gii in corso,
bore, quello e SolkhtcN^|
bEnO: lo dì safriVièito© sitilo!
r
.
VELOCE
Una brevissima routine in Basic 7.0, senza Peek, Poke e Sys, che
batte in praticità (e velocità) le complesse procedure in linguaggio
macchina
di Fabrizio Asruffi
Una routine
in Basic
può essere
veloce
(quasi)
come una
complessa
routine il
linguaggio
macchina
Nondimeno alcuni lo definisco "limitato", ed
è vero. Una di queste limitazioni, ad esempio,
è il fatto che non esiste un’istruzione specifica
per trasferire la pagina grafica su carta, cosa
molto utile soprattutto se si tratta di diagram-
mi, scritte, grafici, etc.
U no dei motivi che fanno pensare al C/128
come ad un personal computer di livello
superiore a quello del C/64 è il fatto che pos-
siede un interprete più evoluto, il Basic 7.0
che, tra l’altro, permette di effettuare disegni in
alta risoluzione molto facilmente.
^iìI knhho i bibK sono bronh ... I cercale, di Care belU Cbutà
...vedi di ho* osare il Erborò
mè di gra fica vettoriale solida
ih Basic. , con SIN e CQ5 , dì cui
mi hai barìaFo Sdirebbe u* \>o
TROPPO LENTO ..
Commodore Computer Club - 29
La routine di
queste
pagine,
priva di Sys,
Pokee
Peek, si
adatta ad
essere
"trasportata"
in vostri
programmi
Basic
Di conseguenza si è costretti ad arrangiarsi
per conto propio, decorrendo a metodi più o
meno complessi, ma che in basic si sono
sempre rivelati, fino a ieri, lentissimi.
Cosicché, per avere risultati accettabili, bi-
sognava ricorrere a brevi ma complicate rou-
tine in L.M..
Ma siamo sicuri che siano proprio le più vel-
oci ?
LA TEORIA
Abbiamo spesso parlato delle caratteristiche
con cui la stampante permette di ricevere e
stampare i codici grafici (ampliamente e in
modo dettagliato sul C.C.C. numero 50, di
conseguenza diamò per scontate quelle infor-
mazioni, riprendendo solo i punti principali nel
caso sia neccessario.
GSHAPE E SSHAPE
Passiamo alla descrizione delle istruzioni
Sshape / Gshape , la cui sintassi è ormai co-
nosciuta da tutti, ma nessuno si è mai chiesto
come facciano a memorizzare una zona del
grafico in una variabile stringa.
Per quanto riguarda l’istruzione Sshape
( Gshape è la corrispondente funzione oppos-
ta, ma si basa sullo stesso principio), una
volta impartita, dobbiamo immaginare che
suddivida l’area del grafico indicata in tante
righe (ognuna alta un pixel) le quali, a loro
volta, sono suddivise in tanti settori da otto
pixel partendo da sinistra.
A questo punto, tenendo presente che a
pixel acceso corrisponde 1 e a pixel spento
corrisponde 0, muovendosi proprio come se
stesse leggendo, memorizza i vari settori con
un codice compreso da 0 a 255 e li memoriz-
za nella variabile stringa sotto forma di codice
Ascii. Nel caso in cui le righe siano costituite
da un numero di pixel non multiplo di 8, quan-
do l’istruzione legge l’ultimo settore di ogni
riga (che sarà, quindi, costituito da un numero
di pixel minore (7, 6, 5, 1)), lo legge comun-
que come un codice "normale", dal momento
che suppone alla sua destra un numero 0 in
grado di far sembrare anche quel settore cos-
tituito da 8 pixel.
Quando verrà chiesto di ridisegnare, in
quello stesso punto o in un altro, quell’area
(tramite l’istruzione Gshape), non terrà conto
degli zeri aggiunti, altrimenti potrebbe danneg-
giare un altro disegno eventualmente già
presente. Per far ciò, ma non solo per questo,
l’istruzione \Sshape, dopo aver terminato di
memorizzare la zona indicata, in fondo alla
stringa aggiunge le coordinate relative del ri-
quadro memorizzato: .... XI, X, Y1, Y, in cui X
e Y sono le coordinate relative dell'angolo su-
periore sinistro (solitamente, quindi, corrispon-
dono a 0, 0), mentre XI e Y1 sono quelle
dell’angolo opposto.
IL PROGRAMMA
A questo punto basta fare 1+1, ed è proprio
quello che il programma presentato effettua.
Nella prima parte esegue un semplice dis-
egno, il quale può essere sostituito con un
qualsiasi altro grafico da voi effettuato, purché
generato in Graphic 1 .
In seguito procede memorizzandolo nel vet-
tore A$( ). Tramite il ciclo di riga 230 viene
memorizzato l’intero disegno, suddividendolo
in fasce di 8 x 200 pixel.
Come si può vedere, però, il ciclo ha uno
step di soli 7 pixel per volta, dovuto al fatto
che la testina della stampante, come è noto,
può stampare solo fasce di un altezza massi-
ma di 7 dots. Tuttavia deve ricevere codici di 8
bit con il più significativo (MSB), sempre posto
a 1. Ecco, quindi, che si giustifica la presenza
della riga 240, la quale, prima di memorizzare
ogni area, traccia una linea sui primi pixel di
questa. Inoltre il fatto che lo step sia di soli 7
pixel per volta, fa sì che la linea tracciata non
"rovini" il disegno. Infatti viene segnata sull’ul-
timo pixel della fascia precedente, ormai già
memorizzata nel vettore. ^
Una volta memorizzato il disegno, viene ri-
chiesto a quale periferica lo si vuole inviare,
flollo bene, Giovedinì . E’ mutile
Lch e, vi d»c a cjuòhto tenere è vince.
re lò sfide contro 1
V= — là Squadri alia di /
. mìo fratto fì.l.uV
--.mettetecela tutte .
e c ^ f)t il Rdstetr sia con voi
>ercio
CPU
■v£ ?2c -V
30 - Commodore Computer Club
iiuiiaiii
i n umilili
se alla stampante o al video (i simboli in
reverse presenti prima e dopo la V e la S
presenti nel Print di riga 280, servono per
cambiare il colore del cursore da giallo a bian-
co e viceversa). Per quanto riguarda l’output
su video, in pratica si mette in atto lo stesso
ciclo utilizzato per la memorizzazione, evi-
dentemente eseguito al contrario, senza però
dover tracciare alcuna linea.
Per quanto riguarda l’output sulla stam-
pante, prima di inviare le varie celle del vettore
occorre escludere le coordinate relative
presenti in fondo a ciascuna di essa.
A questo punto è bene elencare alcune note
relative al listato.
Dato che le fasce memorizzate dal video
sono in posizione verticale (mentre la stam-
pante le dispone sul foglio orizzontalmente), il
disegno che si otterrà sulla carta risulterà ruo-
tato di 90 gradi rispetto a quello che appare
sul video.
Purtroppo la prima striscia di pixel dell'intero
disegno, avente coordinate X=0, andrà persa,
a meno che...
1 - prima del ciclo di riga 230 si memorizzino i
pixel in questione, ad esempio in B$:
Sshape B$, 0, 0, 0, 199
2- dopo lo stesso ciclo, magari a riga 255, si
pulisca lo schermo (con Graphic 1, 1) e di se-
guito si eseguano le tre istruzioni:
Gshape B$, 7, 0
Draw 1,0, OTO 0,199 ' -•
Sshape C$, 0, 0, 7, 199
3- per completare la visualizzazione sul video
si riscriva la riga 350 fino a Next, poi alla
351...
Gshape B$, 0, 0
...e alla 352 quello presente sulla 350, ma solo
da Color 1, 2 in poi.
4- anche per quanto riguarda la stampa, sulla
linea 400, tra Next e Slow si deve aggiungere
l’istruzione '
Print # 4, Left$ (c$, 200).
Naturalmente si può anche pensare di adat-
tare il listato per lo schermo multicolor
( Graphic 3), tenendo però presente che per
ogni pixel acceso valgono due bit, più preci-
samente: >rr
ouv . • - •
00
color 0
sfondo
ioi
color 1
primo piano
10
color 2
multicolor 1
11
color 3
multicolor 2
Un ultimo consiglio è di far girare il program-
ma, le prime volte, eliminando le istruzioni
Fast per capire meglio il principio su cui si
basa il listato.
PROPOSTE
La routine pubblicata, interamente in Basic,
è forse valida anche per il C/16 e Plus/4 dal
momento che i due interpreti sono molto simili
al Basic 7.0.
La velocità di esecuzione consente di ot-
tenere una copia su carta in appena un minu-
to (contro un minuto e venti secondi della
routine L.M. presente su C.C.C. 52).
Una routine in LM, inoltre, è piuttosto difficile
da modificare o adattare ad altri programmi,
specie se questi già contengono segmenti in
l.m. Il programma risulta ottimo per stampare
un’intera pagina grafica. Se, però, si modifica-
no opportunamente i valori di inizio e di fine
dei cicli di memorizzazione, visualizzazione e
stampa (e se si modifica la lunghezza e la po-
sizione di partenza delle fasce di schermo in-
serite nelle rispettive celle del vettore) si può
prendere in considerazione qualsiasi porzione
di schermo.
Scrivendo un programma specifico dov-
rebbe esser possibile disegnare, e gestire,
aree di proporzioni maggiori, suddividendole
in più zone (es. 640 x 400 costituita da quattro
zone da 320 x 200 pixel ciascuna, oppure
costituita da nove zone ciascuna di 256 x 1 60
pixel in grado di riempire l’intero foglio di
carta). Si potranno ottenere effetti "speciali"
grazie alle modalità offerte dall’istruzione
Gshape ( normale , reverse, or, and, xor).
Provate, inoltre, ad invertire o modificare le
coordinate relative con cui salvate un’area di
schermo; oppure ad invertire la sola sequenza
dei codici memorizzati.
Alcune
semplici
modifiche,
suggerite
nell'articolo,
potranno
rendere la
routine
stessa
ancora più
versatile
Il giudice Aegis chiama i coman
I dèh h delle due- havi-
, siete, brorih beh irueìdve
■L. : -yla sfida ?
|Ris)>onde il Cablano PaolUnser...
Commodore Computer Club - 31
Il listato, che
contiene
anche un
semplice
demo, si
può adattare
facilmente al
C/16edal
Plus/4
• ■' N ìf# ?**>#*•* " *• A
grazie alla
notevole
similittudine
esistente
tra i due
interpreti
«t» T
«E -
. • •
10 rem
BO rem • hard copy flraphlc 1 c/lBB • siui ùuit '- „
30 rem •————> by
40 rem • Fabrizio arsuFFi •
50 rem ——————————————
50 : • ,
70 trap 410 ‘ 53 '*
00 :
90 rem esempio graFico ---------------------------------
95 rem inserire - Fast - per una maggiore velocita’ operativa
100 color4,7: : color0 , 7: graphicl , 1 : colori , 8: color0 , 7 : colorS , 8
110 X-0: u-160: X0-50: U0-150: xl-102: X2-135
120 For u-200 to 0 step -20:i-intCu)
130 x-x+1 : y-y + 1 : y0-y0-l : X0-X0+1 : xl-xl+1 : x2-x2+l
140 drau 1,0, i to y,x
150 dratu 1,320,1 to y0,x0
160 drau 1,0, i to y,xl
170 drau 1,320,1 to y0,x2:next
175 drau 1,1,0 to 319,0 to 319,199 to 1,199 to 1,0
177 circle 1,160,100,100
100 :
190 rem inizio della routine hard copy graphic 1
200 :
210 rem memorizzazione della pagina graFica
220 dim aS(45) » -
230 For i-0 to 315 step 7:ii-i/7
240 drau l,i,0 to 1,199
250 sshape aSC ii ) , i , 0, i+7, 199: next
260 : r
270 rem richiesta della periFerica su cui inviare l’output
200 graphic0,l:print’’Mteu »/-frideo o su 3s*tampante 7”:sloui
290 getkey aS:iF aS-”v” then 330
300 iF aS-”s” then 380
310 goto 290 • ’ ’^\C
320 :
330 rem visualizzazione del graphic 1 sul video
335 rem inserire - Fast - per una maggiore velocita’ operativa
340 : : graphicl , 1 : colori , 8: For i-45 to 0 step -l:ii-i*7
350 gshape aSC i ), ii , 0 : next : color 1 , 2 : char 1 , 14 , 24 , "premi un tasto” : slou
360 getkey aS: Fast: goto 270
370 : .ul0
380 rem stampa del graphic 1 su carta
385 rem inserire - Fast - per una maggiore velocita’ operativa
390 Fast: open 4,4:cmd4:print#4,chrS(B); ~ _ ‘
400 For i-45 to 0 stop -1 : print#4 , leFtSCaSC i ), 200) : next : slou : goto 270
410 slou: end
Còri tenori t sono sempre io
e vi bicordo che t>ofrel*e se s
§u»re Iò fine del fumetto nel
che si fcovè sulle jpegme di cjues
C.C.C. Ed or è come mlerrubt'
gustatevi uh J>o'di HI-SC0RE5 !.
C.C.C. BEST PLfìYERS
32 - Commodore Computer Club
C ANATOMIA
DI UNA SPROTEZIONE
Drift, avessi dovuto esaminare il dischet-
to originale bit per bit. Dato che comun-
que si era fatto tardi, decisi di dormirci
su: la notte porta consiglio.
LA SFIDA
Descriviamo una procedura, elaborata da un
"Campione del Sowtware" già noto ai nostri Irttorì, che
illustra le fasi occorrenti per sproteggere il gioco
originale . Power Drift servendosi di quella straordinaria
5 macchina che è il C/128
di Luca Viola
L'indomani mi alzai deciso a tutto, e
incominciai ad esaminare ir disco con
vari Disk-Scanner e Disk- Monitor, senza
venir a capo di nulla.
Sconsolato, stavo per rassegnarmi, e
sovrappensiero fissavo il foglietto delle
istruzioni presenti nella confezione origi-
nale, quando all'Improvviso una nota
presente sul foglietto attirò la mia atten-
zione: vi era scritto, infatti, testualmente:
E ra un pomeriggioxupo e pioviggino-
so quando finalmente il mio nego-
ziante di fiducia annunciò che era arriva-
to il tanto atteso Power Drift Originale su
disco. _ .
Dopo 15 minuti ero già a casa e mi
apprestavo a far partire il programma
dopo aver messo, come di consuetudi-
ne, !a tacchetta di protezione sul dischet-
to. Fatto partire il programma, e dopo
averci giocato un pò per testarlo, mi ac-
cingevo a fare la tradizionale copia di
sicurezza, quando mi accorsi che il mio
Turbo Nibbler preferito, inseparabile
compagno di tante avventure... pirata,
non era in grado di creare una copia
funzionante del disco.
Questo mi, suonava quasi come un
insulto, e decìsi che a tutti i costi avrei
avuto la mia copia di sicurezza di Power
Commodore Computer Club - 33
» *tv' f if
Computer Shop Service
Via Capecelatro 37 - 20148 MILANO - Tel. e Fax. 4048345
Vi propone Iva compresa
con 4 anni di garanzia
Amiga 500
L..
890.000
Amiga 2000
L..
1.750.000
C.64 + accessori
L..
290.000
Stampante 80 col. Mps 1 230
L..
430.000
Stampante 80 col. colore
L..
570.000
drive esterno 3 1/2 x Amiga
L.
230.000
drive esterno 5 1/4 x Amiga
L..
300.000
Monitor colore 8802
L..
420.000
H-disk 20 Mb Amiga 500 200
L..
980.000
Espansione Amiga da...
L..
200.000
inoltre personal computer Ms Dos
ai prezzi migliori d'Italia
PC XT 51 2K HD - 20 Mb - Monitor - Tastiera
L.. 1.450.000
PC AT 1024K - HD 20Mb - Monitor - Tastiera
L.. 1.950.000
PC 386 SX - 1024K - HD 40Mb • Monitor - Tastiera
L.. 2. .800.000
floppy Disk e accessori a prezzi eccezionali
5 1/4 360k
L.. 950
3 1/2 ImB
L.. 1800
Spedizione in contrassegno in trutta Italia
Fumagalli - Via Cairoli, 48 - LECCO - Tel. 0341-363341
Questo gioco, una volta caricato, non
prevede ulteriori caricamenti sia da
cassetta che da disco.
Ecco la soluzione che cercavo!
Nella foga di vedere come era sta-
to protetto il disco avevo tralascia-
to un’altra possibile strada: quella
di agire sulla memoria del compu-
ter, registrandola, cioè, per intero
dopo che il gioco fosse stato cari-
cato, e dopo aver chiaramente in-
dividuato l’indirizzo di partenza del
programma.
.. Inoltre, per quante protezioni vi
possano essere, almeno il primo
programma della Directory deve
poter essere caricato normalmen-
te con un comando del tipo Load
8 , 1 .
Se fossi riuscito a seguire pasr
so-passo le azioni svolte dal com-
puter durante il caricamento, sarei
riuscito senz’altro a rintracciare gli
indirizzi iniziale e finale del gioco,
in modo da registrarlo senza pro-
blemi su un mio disco.
Il C/128, il mio computer, ben si
presta alle azioni di pirateria, avendo
due banchi separati di memoria fìam, il
secondo dei quali completamente libero
da interferenze. Per cui resettai in modo
128 e il primo passo compiuto fu quello
di dare il comando Directory (se la si
carica in modo 64 con Load "$", 8 e
successivo List non sarà visibile).
Mi fu svelata la presenza di due files:
"As" e "Gm1\
Il file As era quello che veniva caricato
con Load 8,1,
e perciò era an-
che il responsabi-
le del caricamen-
to del resto del
gioco, dato che
eseguiva un Au-
tostart. Allora pre-
si il fido program-
ma Load Address
presente sul 1541 -Test Demo Disk , per
verificare a quale indirizzo di memoria il
file As venisse caricato. Il computer ri-
spose $02A7. A questo punto, per poter-
lo meglio esaminare, lo caricai in Bank
1, non però a partire dal suo indirizzo
reale (perchè ciò avrebbe sconvolto le
delicate routine di sistema presenti in
quell’area), ma dall’indirizzo $12A7 an-
ziché $02 A7. Questo per riuscire meglio
a comprendere il flusso del programma:
se avessi incontrato, esaminandolo, del-
le istruzioni del tipo Jmp oppure Jsr,
avrei sostituito lo zero iniziale con un uno
e avrei potuto interpretare correttamente
il significato dei salti. Impartito, così, da
monitor il comando...
L "As", 8, 112A7
... e caricato in memoria tale file, impartii
il fatidico D112A7.
Una serie di dati confusi apparì sul
video. Provando con M 1 12A71u chiara-
mente riconoscibile un miniprogramma
Basic contente l’istruzione Sys 2061,
che entrava in azione quando si fosse
caricato il file As senza il suffisso *,8, T
ma semplicemente col ",8", caricandolo,
cioè, in area Basic: un modo elegante di
ottenere l’ autostart usando entrambe le
forme sintattiche di Load.
Pensai, inoltre, che quando si digita il
", 7" alla fine di un comando Load, il file
stesso viene caricato a partire dalle stes-
se locazioni in cui era stato salvato.
Per realizzare l’autostart, quindi, era
necessario che il programma As si
estendesse almeno fino a $302 - $303
(770 - 771) in modo da modificare
il vettore di Warm Start e farlo pun-
tare all’ indirizzo di partenza.
Diedi così il comando M 1 1302,
che rivelò che nel vettore di Warm
Start veniva inserito il valore C4 -
02 (in forma low - high, quindi l’in-
dirizzo reale era $02C4 , a cui veni-
va ceduto il controllo al termini* del
caricamento di Ab). * * ; *
LA PROTEZIONE
VACILLA
A questo punto il comando D
112C4 aprì la prima porta: dal di-
sassemblato, in cui venivano usate
le routine kernal di Setfiles, Setnam
e Load si evinceva che veniva ca-
ricato in maniera standard un altro
file; in seguito il controllo gli veniva
ceduto tramite un Jmp $0334.
La routine Setnam, infatti, punta-
va ad un nome di lunghezza 3 po-
sto all’indirizzo $201^ pertanto con
M 1 12C1 riuscii a vedere il nome di tale
file: come mi aspettavo, era Gml.
A questo punto controllai, tramite il
programma Load Address, l’indirizzo di
caricamento di Gml , che, guarda caso,
era proprio $334. Lo caricai in memoria
(come al solito in bank 1) a partire dal-
l’indirizzo $1334 anziché $0334 - per
meglio esaminarlo- con...
L "Gm1".8, 1133
...dopo aver però
spento e riacceso il
computer per can-
cellare la memoria
ed evitare confu-
sioni con i dati del
file caricato prece-
dentemente. -
Impartendo D
1 1 334 la prima
UNA DOVEROSA PRECISAZIONE
Tutte le informazioni riportate nel presente articolo sono da ritenersi puramente
didattiche. Qualsiasi uso improprio (soprattutto se a scopo di lucro) è da ritenersi
Illegale. L’autore del presente articolo, e la Systems Editoriale, declinano
pertanto ogni responsabilità per un uso non corretto delle note contenute nel
presente articolo.
5 :rem ** go64 in ram 1 v2.0 **
6 :rem ** by viola luca 1 990 **
7 :rem ** computer c/128 **
8 :
10 scnclr: bank 15
20 print "reading data..."
21 print "sys 4864 per andare in c/64"
30 for t = 4864 to 4915
40 read x$: x = dec(x$)
50 poke t, x: ck = ck + x
60 next •
70 if ck <> 6559 then print "error"
71 :
1 00 data 20, el , a 7, fO, 05, c9, 59, fO, 01 , 60
1 10 data a2, 00, bd, la, 13, 9d, 63, 02, e8, eO
120 data 1b, dO, f5, 4c, 63, 02, a9, 7e, 8d, 00
130 data ff, a9, 44, 8d, 06, d5, a9, e3, 85, 01
140 data a9, 2f, 85, 00, a9, f7, 8d, 05, d5, 4c
1 50 data e2, fc
1 60 end
34 - Commodore Computer Club
ali» za di codici SD che avevo
posto in memoria prima di
± andare in modo 64.
*4 Non trovando nulla, im-
partii M 1F400, poi M
V^b' .* r f-]g‘ - 1F800, finché, dando, M
he H^H IFaOO mi accorsi che a
. - ì ^ l<v _^ . partire da $1 FalO riparti-
— I — rf-— va la sequenza di codici
. - Bd: il gioco dunque termi-
~ f r\ nava a $Fa10.
L# A questo punto avevo tut-
ti i dati necessari: salvai
s
/Fato 1 '
Uscito quindi dal monitor, caricai il mio || file registrato, comunque, era troppo
programmino Go64 in modo da andare lungo e non direttamente caricabile in
in modalità C/64 attivando la Ram 1 an- modo 64 (ben 250 blocchi!). Si rendeva
zichè 0: così facendo al momento del ' necessario compattarlo: in giro esistono
reset mi sarei ritrovato nel bank 1 il codi- diversi compattatori in grado di agire su
ce di Power Drift perfettamente integro, file così grandi.
Caricai l’originale con Load 8, 1 Uno dei miei, File Compcessor III, può
Una volta partito, mi accorsi che effet- compattare fino a 250 blocchi (che fortu-
tivamente il turbo si fermava per 6 volte na!) e chiede l'indirizzo di memoria a cui
durante il caricamento, e questo avvalo- saltare dopo aver decompattato il file; a
questa domanda risposi
% £T* senz'altro $0834 (che era
£ 4Sj£ l'indirizzo di partenza di
? Power Drift ricavato poco
prima esaminando il codi-
— - J ce del file Gml, ricorda-
i te?). °**
Sottoposi il (lungo) file
alla procedura di compat-
tazione, e dopounà discre-
JSzJBL ta attesa, otteni un file
compattato della lunghez-
| |j za di 200 blocchi (il limite
massimo di un file caricabi-
le in modo 64 è di 202 bloc-
k- A questo punto tornai in
modo 64, caricai il file così
ottenuto, e, con compren-
sibile trepidazione, diedi il
run... Funzionava! (quasi quasi mi di-
spiaque per Chris Butler, ma tant’è...).
E così, dopo 2 ore e mezza circa di
lavoro, ero riuscito ad ottenere la mia
copia di sicurezza, ma non ero del tutto
tranquillo. . : 1
In serata, infatti, il negoziante a cui mi
ero rivolto mi aveva garantitò l’arrivo di
Turbo Out Run...
istruzione presente era Jmp
$0353. Continuai quindi con D
11353. Apparì una tavola di
Jsr ($36E-$37D), seguite da
una serie di istruzioni di scrit-
tura nei registri del Cia2 ($393-
$3Aa).
COMPARE ILTURBO
Disassemblando i vari indi-
rizzi delle Jsr mi accorsi che
venivano modificati i vettori di
Load: questo programma, | §£*
quindi, era il turbo che prowe- MJJjTj
deva a velocizzare il carica-
mento di Power Drift.
Continuando a disassem- HI
blare la routine principale notai
agli indirizzi $3B0-$3D5 che veniva ri-
chiamata per 6 volte, con in accumulato-
re un numero crescente da 0 a 5, una
subroutine sita a $3F9.
Impartendo D 1 13F9 vidi che tale su-
broutine conteneva un salto alla routine
di load, a cui andava dopo aver settato
alcuni puntatori: essa doveva essere
quindi incarnata di caricare i vari pezzi
come, per esempio, la schermata grafica
che appare All’Inizio.
Seguivano agli indirizzi
$3D7 - $3Eb i salti ad alcune
routine kernel per chiudre la § ^ f
comunicaziòhe col drive, e a 1,- 1
$3Ed una Jsr a $6D5. Ili,
Impartendo D 116D5 mi
accorsi interpretando il disas- ~
semblato che tale subroutine i-
effettuava uria decodifica dei S* .
dati caricati in turbo.
La routine principale, infi-
ne, chiudeva con un salto a
$0834 (+2100 in decimale):
avevo trovàtò l’indirizzo di r
partenza del programma! sfe-é
Mi restava da scoprire do-
ve finisse il programma.
Per far ciò riempii la memo-
ria del banki col codice BD
(un altro codice comunque sarebbe an-
dato bene) Osando il comando...
F 10400 1FFFFBD
Questo pérchè, una volta caricato il
gioco, avreipotuto resettare e vedere col
comando M dove in memoria ricomin-
ciasse la sequenza di Bd : quello sarebbe
stato l’indirizzo finale del codice di Power
Drift.
rò la mia ipotesi che il codice presente
da $3B0 a $3D5 servisse a caricare 6
files tramite la subroutine allocata a
$3F9.
Terminato il caricamento fu effettuata
la decodifica e non appena il gioco partì,
resettai.
Tornato in modo 128, diedi un...
M 1F000
Commodore Computer Club - 35
GW- BASIC C/64
TUTTE LE FINESTRE
CHE VOLETE
Una semplice procedura in Gw-Basic offre una nuova possibilità
per abbellire i nostri programmi
di Luca Morettoni
Molti di noi si saranno divertiti almeno una
volta con il basic di Amiga ad aprire fine-
stre grafiche; oppure hanno visto quanto
siano più intuitivi da usare programmi che
"dialogano" con l'utente attraverso le già
citate finestre.
Una volta, però, tornati al vecchio C/64,
ci ritroviamo di fronte al solito (e tetro)
schermo a quaranta colonne.
Cerchiamo ora di spiegare (anche se
sommariamente) come vengono gestite le
finestre da Amiga; ed i problemi che ab-
biamo. invece, con il C/64 per aprire
una finestra. ,
’• j* •’ % *■ -> , ’ )
LE FINESTRE
Le finestre vengono gestite da Amiga
come se fossero veri e propri schermi indi-
pendenti, senza però perdere ciò che cia-
scuna finestra sembra "coprire" momen-
taneamente. Il miracolo avviene trasferen-
do. ciò che viene occultato, in una zona di
memoria protetta da altre scritture. In se-
guito. i .dati vengono richiamati solo quan-
do la finestra viene chiusa nuovamente.
Tale lavoro viene effettuato in frazioni di
36 - Commodore Computer Club
secondo attraverso sofisticati circuiti inte-
grati di nuova concezione, tra cui il
famoso Blitter. .
PROBLEMI...
Naturalmente il C/64 (a causa soprat-
tutto alla sua età) non brilla certo come ve-
locità operativa e quindi bisogna un po'
arrangiarsi.
Per realizzare finestre grafiche con il
C/64 è stata subito accantonata l'idea di
trasferire in altre zone Ram l'area grafica
coperta dalle finestre.
. L'accorgimento citato è stato scelto non
tanto per la velocità (decisamente accetta-
bile. se realizzato in linguaggio macchina)
ma per la limitata memoria disponibile:
provate voi a sistemare, in soli 50 KRam, il
Gw-Basic, lo schermo grafico, un pro-
gramma ed una manciata di finestre (ricor-
dò che una finestra a tutto schermo occu-
pa ben 8K!).
Il problema viene quindi risolto trasfe-
rendo "frammenti" di schermo su disco
per poi essere ricaricati quando si chiude
una finestra. La velocità operativa subisce
ovviamente un calo, ma la quantità di fine
stre apribili aumenta (quasi,..) all'infinito.
...E SOLUZIONI
Non è esatto definire “programma" la
soluzione adottata, in quanto sono soltan-
to due le subroutine (apertura e chiusura fi-
nestre) che si possono aggiungere a qual-
siasi programma realizzato.
Ricordiamo che durante iLfunzionamon-
to del programma deve rimanere inserito,
nel drive, un disco su cui il programma sal-
verà (e, successivament §7 caricherà) i
vari riquadri.
Per aprire una finestra basta l’istruzione
Gosub 48000; è però necessario, prima
di "chiamarla", passare le dimensioni ed il
numero della finestra attra^Trso le seguen-
ti variabili:
NF% v‘ L > ,
numero della finestra
’ f TT -1-4
AAX%
coordinata x angolo superiate sinistro
PREMI UN TASTO PER TORNARE ALLA FIN. 2
MINDOM l.i
L . MO RETTON1 C.C.C
<C> SYSTEMS ED
MI NDOU
MINDOM
MINDOM
MINDOM
\VV\
S/i i sa
m/
LA FINESTRA 2 E ' RECUPERATA
MIN
MIN
MIN
MIN
MIN
MIN
MIN
MIN
MIN
MIN
MI N
DOM
DOM
DOM
DOM
DOM
DOM
DOM
DOM
DOM
DOM
DOM
MINDOM
MINDOM
MINDOM
MINDOM
MINDOM
MINDOM
MINDOM
MINDOM
MINDOM
MINDOM
MINDOM
MINDOM
MINDOM
MINDOM
MINDOM
BBY%
coordinata y angolo superiore sinistro
ccx%
coordinata x angolo inferiore destro
DDY%
coordinata y angolo inferiore destro
Il numero della finestra deve essere indi-
cato sempre in ordine cresente. pena ('in-
sorgere di vari problemi in fase di chiusura
(se una finestra era già aperta, il vecchio
contenuto viene sostituito dal nuovo); inol-
tre. se le coordinate non sono corrette,
vengono controllate dal programma ed e-
ventualmente modificate (in alcuni casi le
finestre non vengono aperte, vedi linee
48110-48200).
C'V -
Per la chiusura delle finestre, invece, la
procedura è decisamente più semplice.
Basta indicare il numero della finestra (va-
riabile NF%) e saltare alla routine con Go-
sub 48410: il programma prowederà a
caricare la porzione di schermo al posto
che le compete.
ALCUNE
PRECISAZIONI
APRO LA FIN. 2 SENZA PERDERE LA 1
•q.
■ir,. k V ••
.tu. \ ■ \ \
□4- CELLA 8 » 8 PIXEL <8 B VTE >
/LOCgZIONE DI INIZIO DEL SALUATAGGIO
FINESTRA
LOCAZIONE FINALE-
E' bene sottolineare, a scanso di equivo-
ci, che prima che il C/64 apra una finestra
sullo schermo occorre un tempo propor-
zionale all'area della finestra stessa. Segue
ora una breve nota sul funzionamento del-
le due subroutine.
La finestra, pur appartenendo allo
schermo grafico, viene individuata in una
griglia di 320 x 25 (come se fo$se in mo-
do testo).
Se ne determina quindi l'indiriz-
zo iniziale nella pagina grafica a partire da
$E000 (decimale 57344) e viene calcola-
ta la sua occupazione in numero di byte
(variabili LCI e BYO). La porzione di scher-
mo viene quindi salvata in un file binario (i-
struzione Bsave, riga 48300) per poi esse-
re ricaricata con l'istruzione Bload.
y' j ~i a *> i m ? •
Il file contenente lo sfondo viene cancel-
lato dopo la chiusura della finestra (riga
48500). •
Tutte le porzioni di schermo regi-
strate hanno come nome il numero della fi-
nestra. preceduto da uno spazio, e come
suffisso la sigla .WND.
Un ultimo suggerimento è 'quello di ab-
bellire i bordi delle finestre; magari pone-
dovi in alto il nome corrispondente (vedi li-
nee 48340 - 48350).
Commodore Computer Club -37
PER CHI INIZIA
Il listato di queste pagine è stato scritto usando il "dialetto" Gw-Basic che diffe-
risce dal Basic standard del C/64 in numerose istruzioni.
Chi non possiede nè il drive nè il dischetto Gw-Basic Emulator (che è possi-
bile tuttavia richiedere al nostro servizio arretrati, vedi ultime pagine di questo
fascicolo) non può quindi esaminare i simpatici "effetti" del programma
Chi. invece, è pratico di linguaggio macchina, sarà sicuramente in grado di e-
saminare la tecnica usata dal nostro collaboratore e "trasferirla" sul C/64, pur
se questo è privo dell'emulatore.
Coloro che saranno in grado di realizzare finestre usando altri linguaggi (o al-
tri computer) possono telefonare in Redazione (02/52.49.21 1) nei pomeriggi
di lunedì e giovedì di ogni settimana per concordarne l'eventuale pub-
blicazione.
100 REM UINDOU DEMO ! 47050
110 : 47060
100 KEYOFF : CLS1 : SCREEN1 47070
130 FORA-0TO300STEP10 47080
140 LINEC0 , A) -(380 , A) 47090
150 LINE(A,0)-(A ,200) : NEXT , '■ 47100
160 LOCATE 1,1 47110
170 PRINT”0RA APRO LA FIN.l SEN2A PEROERE IL FONDO" 47100
180 AAX*-05 :BBY*-05 48000
190 CCX*'-085:DOY*-105:NF*-1 48010
000 GOSUB48000 4B000
010 LOCATE 1,1 48030
000 PRI NT "PUNTI CASUALI NELLA FINESTRA N.l " 48040
030 FORS-1TO3:FORA-05TO28S 48050
040 PX-INT(RNDC0)*100)+05 48060
060 PSET C A , PX ) : NEXT A , S 48070
070 L0CATE1.1 48080
080 PRINT"APRO LA FIN.0 SENZA PERDERE LA 1" 4B090
090 AAX*-B5 :BBY*-55 * 48100
300 CCX*-305:DDY*-155:NF*-0 48110
310 GOSUB48000 48100
300 LOCATE1 , 1 48130
330 PRINT”NELLE FIN. SI POSSONO TRACCIARE GRAFICI” 48140
340 F0RA-6T033STEP3 40150
350 CIRCLEC 197 , 110) , A : NEXT 48160
360 L0CATE1 , 1 48170
370 PRINT”OPPUR£ SCR1UERE TESTI ... " 48180
380 FORA-0TO10 48190
390 LOCATEA+9, 13:PRINT”UIIND0UJ !” 48000
400 LOCATEA+9 , 31 : PRI NT "LI INDOLI !”:NEXT 48010
410 AAX*-15 :BBY*-15 * 48000
400 CCX*-095:DDY*«135:NF*-3 48030
430 GOSUB48000 48040
440 LOCATÈ1.Ì 1 48050
450 PRI NT "E PER FINIRE ... \ " 48060
460 F0RA-15T0135STEPS 48070
470 L INEC A, 15) -( 15 , 150- A) : NEXT 48080
480 L0CATE7 , 15 : PRINT”UINDOU 1.1" 48090
490 L0CATE9, 11 : PRINT"8Y LUCA F10RETT0NI ” 48300
500 LOCATE 10 , 12: PRI NT” (C) SYSTEMS ED" 48310
510 LINE(79,45)-C017,81),1,B 48300
500 LI NE (76, 40) -(000 ,83) , 1 ,B 48330
S30 L0CATE1 , 1 48340
540 PR INT "PREMI UN TASTO PER TORNARE ALLA FIN.0" 48350
550 GETAS : I FAS- " "THEN550 48360
S60 NF*-3:GOSUB48410 48370
570 LOCATEl.l 48380
580 PRI NT "LA FINESTRA 0 E’ RECUPERATA! " 48390
590 SÉTAS: IFA$- ""THEN590 ' 48400
600 NF*-0:GOSUB48410 48410
610 LOCATEl.l 48400
600 PRI NT "ORA ECCO LA FINESTRA 1 COME ERA PRIMA" 48430
630 GETAS: I FAS- ""THEN630 48440
640 NF*~l:GOSuB48410 48450
650 LOCATEl.l 48460
660 PRI NT "ANCHE LO SFONDO E* STATO RECUPERATO " 48470
670 GETAS: 1FA$-""THEN670 48480
680 SCREEN0: END 48490
46000 : 48500
47000 END 48S10
470L0. L REri. »-r 48500
47000 REM ! 48530
47030 REM T SUBROUT INE UINDOU UER . 1 ! 48540
47040 REM ! PER C/64 E GUBASIC UER 0 ! 485S0
REM !
REM !
REM !
REM I
REM !
REM !
REM •
IDEATO E REALIZZATO DA !
LUCA MORETTONI !
!
(C) 1989 SYSTEMS ED. *
REM SUB . UINDOU OPEN
REM CHIAMARE CON 'G0SUB 48000'
REM PARAMETRI RICHIESTI :
REM NF* : NUMERO FINESTRA
REM AAX* : COORD . X . ANG . SUP . SIN
REM BBY* : COORD .Y .ANG .SUP .SIN
REM CCX* : COORD. X. ANG. INF. DES
REM DDY* : COORD . Y . ANG *. I NF . DES
•
REM CONTROLLO COORDINATE
•
IF NF*-0 THEN RETURN
IF AAX*<0 THEN AAX*-0
IF AAX*>319 THEN AAX*-319
IF CCX*<AAX* THEN RETURN
IF CCX*> 319 THEN CCX*-319
•
IF BBY*<0 THEN BBY*-0
IF 8BY*> 199 THEN BBY*-199
IF 0DY*<BBY* THEN RETURN
IF DDY*> 199 THEN D0Y*-199
m « |
REM CALCOLI DIM. FINESTRA
LCI-8HE000+C I NT C BBY*/ 8) *380)
BYO-C C INTC00Y*/8)*1 )*300)-(LCI-&HE000)
REM REFRESH SU DISCO
•
U$-STRS(NF*)«-" .UND"
BSAUE US.LCI.BYO
•
REM APRE LA FINESTRA
•
LINE (AAX*, BBY*)-(CCX*, DDY*) , 0, BF
L I NE ( AAX* , BBY* ) - ( CCX* , DDY*) , 1 . B
•
REM ESCE
RETURN •
. *■'4 —
REM SUB. UINDOU) CLOSE
REM CHIAMARE CON ’GOSUB 48410*
REM PARAMETRI RICHIESTI :
REM NF* : NUMERO FINESTRA
•
REM REFRESH DAL DISCO
•
US-STRS CNF* )■*•”. UND"
BLOAD US
KILL US
•
REM ESCE
*
RETURN
END
38 - Commodore Computer Club
COME FARSI CESTINARE
ARTICOLI E PROGRAMMI
L 'irrefrenabile desiderio di collaborare con la nostra rivista spesso fa dimenticare
elementari norme di sopravvivenza
di Alessandro de Si mone
U no dei misteri più affascinanti, per
chi lavora in una rivista, è certamen-
te rappresentato dalla sfrenata fantasia
di coloro che aspirano a diventare scrit-
tori o "giornalisti".
La figura del giornalista, almeno se-
condo le credenze popolari più accredi-
tate, è stata definitivamente smondana-
ta fin dai tempi dei film in bianco e nero
americani degli anni '50. In queste pelli-
cole, un giovane scrivano del Connecti-
cut (tradizionalmente deriso da familiari
ed amici) riesce a realizzare uno scoop
d’eccezione intervistando (a seconda
della fantasia dello sceneggiatore holli-
woodiano di turno) un marziano arrivato
fresco fresco da Marte oppure, a scelta,
fotografando il presidente degli Stati
Uniti mentre tenta di vendere missili a
Fidel Castro. Le conseguenze dello
scoop diventano, in seguito, ordinaria
routine: lo scrivano gode dell'Invidia dei
suoi ex-amici, si fidanza con la più carina
del gruppo (che lo sfotteva più degli altri)
e diventa direttore ipercontinentale del
New York Times , con tanto di sigaro
(cubano) imbocca.
Il lettore umano "medio” di un qualsia-
si periodico (e con tale termine intendia-
mo colui che, oltre a leggere, sa anche
scrivere) ritiene di non aver nulla da
invidiare agli scrivani del Connecticut,
anche se risiede, più modestamente, a
Bernareggio e non gli capita di aver
spesso a che fare con marziani o presi-
denti ma, al massimo, con il parroco o
col farmacista.
Paradossalmente, però, il racconto
nel cassetto, che ognuno di noi possiede
(ci riferiamo al cassetto), non sempre
viene fotocopiato ed inviato alla Garzanti
o alla Mondadori ed il motivo è presto
detto: chi ci assicura che, una volta in-
viato, la signora Garzanti (o la signorina
Mondadori) non cambiano subdolamen-
te il nome sulla copertina, appropriando-
si di fama, onori e, soprattutto, soldi?
Per essere al riparo da brutte sorprese
bisognerebbe andare da un notaio e de-
positare il manoscritto prima di inviarlo.
E se poi il notaio è parente stretto della
signora Garzanti (o è sposato con una
Mondadori?)... Il mondo, si sa, è cattivo;
è buona norma prudenziale aspettare
che diventi più buono prima di inviare il
manoscritto.
I PROGRAMMATORI !
La sottospecie più feroce degli aspi-
ranti giornalisti è rappresentata dai letto-
ri di riviste tecniche, in generale, ed in-
formatiche, in particolare.
Questi personaggi ritengono (nell’or-
dine) che: 1 - Tutto proviene dalla Tecni-
ca e tutto finisce in essa. 2- L’uomo che
non vive di tecnica non è tale. 3- Il mon-
do sarebbe migliore se privato di coloro
che non vivono secondo le regole mona-
stiche dei punti 1 e 2.
I programmatori, poi, sono le creature,
in assoluto, più pericolose del pianeta,
anche perchè non facilmente biodegra-
dabili. Rimangono in uno stato di peri-
colo latente solo fino all’età di circa 14
anni, oppure fino a che non entrano in
possesso di un calcolatore.
II principale segnale del raggiungi-
mento della maturità si evidenzia con il
malcelato disprezzo dei cuccioli (che si
arrabattono con il Basic alla meno peg-
Commodore Computer Club - 39
gio) e nella esclusione violenta, dal bran-
co, di coloro che non ricordano a memo-
ria tutti gli indirizzi di tutte le Rom.
Ligio alle regole prima accennate,, il
programmatore ? aspirante - giornalista
ritiene, giustamente, che la Redazione
al completo di una qualsiasi rivista di
informatica trascorra il suo tempo ad
attendere, trepidamente, che il postino
consegni il suo straordinario programma
(della serie / Listati Che Hanno Cambia-
to Il Mondo ) e non si preoccupa minima-
mente dei trascurabili dettagli inerenti la
comprensibilità, il funzionamento e l’uso
del listato stesso.
I più furbi si limitano ad inviare un
dischetto (naturalmente privo di etichet-
ta) che, partendo in autoboot, visulizza
meravigliosi demo e procedure forse in-
teressanti, ma tutte rigorosamente in lin-
guaggio macchina, magari crittografato,
e senza listato sorgente, nè articolo
esplicativo.
Come si possa, poi, stampare il listato
è un mistero glorioso la cui soluzione
viene affidata al basso volgo.
IN PRATICA
Allo scopo di non esser fraintesi, per-
tanto, è bene esser brutali per mettere in
pre-allàrmé gli aspiranti collaboratori.
Ecco , quindi, che cosa accade alle vo-
stre lettere quando pervengono in Reda-
zione.
1 : Non appena giunge una qualsiasi
missiva, la busta che la contiene viene
immediatamente stracciata, bruciata e
t le sue ceneri sparse nel mare. Il motivo
del selvaggio comportamento è dovuto
unicamente al fatto che lo spazio a di-
sposizióne per archiviare la corrispon-
denza è piccolo (e la gente mormora) e
tutto il "superfluo" deve essere elimina-
to.
2: Si esamina, subito dopo, il contenu-
to della busta; questa doveva contenere
un dischetto ed un unico foglio di "ac-
compagnamento".
Tutti i fogli in più (presi casualmente,
tranne uno) vengono stracciati, bruciati
e le loro ceneri gettate nel water (non
possiamo andare al mare per ogni lette-
ra: sarebbe antieconomico).
3: A questo punto (e solo a questo
puntò) si inizia a leggere la lettera. In
questa, anzitutto, deve esserci l’intesta-
40 - Commodore Computer Club .
zione: la Systems Editoriale pubblica
ben 18 (diciotto) testate e non si può
perder tempo a leggere la lettera per
capire a quale rivista è indirizzata. Inoltre
deve esser presente la data di invio, e
questo nel vostro esclusivo interesse;
verrà data precedenza, infatti, alle lette-
re che presentano data meno recente
(non fate però i furbi datandole 1 825, ce
ne accorgeremmo subito).
Le lettere prive di data (e/o/u di inte-
stazione) verranno poste in coda alle
altre ed esaudite solo se c’è tempo (cioè
mai). Nella lettera lasciate perdere i
preamboli del tipo " siete la rivista più
forte del mondo": lo sappiamo già. Arri-
vate subito al sodo descrivendo somma-
riamente, ma chiaramente, il contenuto
del dischetto. In fondo, poi, non dimenti-
cate il vostro nome, cognome, indirizzo
e, soprattutto, telefono!
4: Il dischetto. allegato deve esser do-
tato di etichetta su cui deve comparire il
nominativo completo dell’autore, la data
di spedizione, il tipo di computer su cui
"gira" ed il nome dei files presenti. La
Directory del dischetto deve essere "pu-
lita" (lasciate perdere i trucchetti relativi
alla visualizzazione di ID multicolor ani-
mati, con sottofondo musicale: non ci
impressionano più di tanto) ; deve essere
inoltre priva di files inutili e superflui (tipo
"separatori" e simili frattaglie). Il dischet-
to, soprattutto, non deve partire in auto-
boot; vi assicuriamo che siamo in grado
di digitare Loade Run, nè ci costa fatica
farlo.
Nel caso di articoli per Amiga, i di-
schetti devono contenere:
- l’articolo (in formato Ascii puro, sem-
plice e spartano) privo del tutto di format-
tazioni particolari (caratteri sottolineati,
neretto, cambi di font e simili barbarismi:
ci pensiamo noi ad imbruttire il tutto).
- i vari programmi sorgenti (anch'essi
in formato Ascii).
Onde evitare dispiaceri, provate a
mandare in stampa articolo e programmi
utilizzando (da Shell ) il comando Print:
se la stampante risponde, avete buone
probabilità che il tutto sia valido.
Il dischetto, sempre nel caso di Amiga,
non deve contenere le varie subdirectó-
ry L, C e simili. Il dischetto deve essere
stato originariamente prodotto con il co-
mando Format nella sua veste più di-
screta. Come fare, però (si chiderà l’a-
stuto aspirante collaboratore) se il pro-
gramma inviato richiede la presenza di
tali subdirectory? E qui casca l’asino!
Non dobbiamo dimenticare che la nostra
rivista si rivolge soprattutto ai principianti
ed a coloro che, di norma, non intendono
ammalarsi di informatite. Dobbiamo im-
maginare che il nostro lettore "medio",
dopo aver letto l’articolo, accende il com-
puter e provvede a digitare il listato, re-
gistrandolo su di un dischetto che può
essere qualunque e, come tale, anche
privo dei files vitali eventualmente ne-
cessari per il buon funzionamento della
procedura.
L'aspirante collaboratore, pertanto,
deve tenere a mente tale eventualità
facendo comparire nel listato, ad esem-
pio, un messaggio del tipo Print "Nel
dischetto presente in DFO: deve esser
presente la subdirectory L: in caso con-
trario premi Ctrl C e provvedi ad esegui-
re la copia di L:". Naturalmente tali avr
vertimenti devono esser presenti anche
nell'articolo.
I dischetti che, ad una sommaria vi-
sualizzazione della directory, dovessero
contenere altre directory, verranno infet-
tati con la varicella e rispediti al mittente,
senza francobollo.
PIANGE IL TELEFONO
Naturalmente la stessa procedura
può (anzi, deve ) essere seguita da co-
loro che intendano servirsi della nostra
BBS. Preparate i vari files che costitui-
scono il vostro lavoro, dotateli di nomi
non più lunghi di otto caratteri (per il
nome) e tre (per l'eventuale suffisso).
Quest’ultimo deve essere^
.Asc (Articoli) <> 0;
.Bas (Programmi Basic).-,
.Ass (Disassemblati)
.C (Sorgenti C). ì®
.Let (Lettera di accompagnamento)
Non sapete ancora il numero della
nostra BBS? Eccovi accontentati:
02/52.49.211 -
da 300 a 2400 baud; parità none; n.
bits 8; un bit di stop. In altre.£arole: 2400,
N, 8, 1.
m
La nostra BBS si adatta automat-
icamente alla velocità del vostro modem
ed opera 24 ore su 24, sette giorni alla
settimana, 12 mesi all’anno. Cioè sem-
pre.
f ■ -Commodore
COMPUTER
CLUB
ina
w&m r '
2 «
Sul*-
>1
ì'^ì.1.
.
T I
* .
m J. I
L 13. *
■
AMIGA
1
■ !
I
I
©
•*";
mm
688 SUB ATTACK
L a simulazione di battaglie da bordo di
un sottomarino conta un buon nume-
ro di titoli per Amiga (Hunt for Red Hoc-
tober, Sub Battle Simulator , Submarine
Hunter, Submarine Simulator...), ma
quando scende in campo la leggendaria
Electronic Arts come minimo bisogna
fare attenzione. Questo programma as-
somiglia tantissimo a Sub Battle Simula-
tor perchè all’inizio si sceglie il quadro di
controllo cui accedere indicando, con il
mouse, un personaggio tra quelli raffigu-
rati in un interno di sottomarino.
Per prima cosa bisogna richiedere, via
radio, il tipo di missione (ve ne sono
almeno sei, differenziati a loro volta in
vari sottolivelli), poi si può iniziare a ma-
novrare periscopi, radio, radar, sonar,
motori, sistemi di puntamento, siluri,
analizzare mappe e sagome di navi me-
morizzate nel computer di bordo.
T utte le operazioni sono controllate via
mouse clickando sui gadget visualizzati.
A differenza di Sub Battle Simulator, qui
troviamo un numero enorme di controlli
e parecchie persone alle nostre dipen-
denze, che tra l'altro compaiono effetti-
vamente come visi digitalizzati fedel-
mente sul video. Le missioni sono talvol-
ta piuttosto complesse ed impegnative,
ma come al solito è previsto un sistema
di compressione del tempo per comple-
tare i lunghi inseguimenti in un tempo
ragionevolmente breve. L'intero pro-
gramma è comunque molto realistico ed
appassionante, sebbene sia necessario
studiare un ponderosomanuale d’uso
per imparare ad usarlo a fondo.
Su di un sottomarino a
caccia di navi nemiche
in uno scenario
decisamente realistico
Computer: Amiga inespanso
Gestione: Mouse
Tipo: Simulazione sottomarino
Softhouse: Electronic Arts
LA TECNICA
Partendo dal peggio, gli effetti sonori
avrebbero potuti essere migliori e di cer-
to sono l'unico punto discutibile dell'(al-
trimenti) ottimo programma. I numero-
sissimi schermi comprendono le indica-
zioni di numerosi tipi di navi differenti,
con sagome ed informazioni rigorosa-
mente vere. I radar sono realistici, anche
se la fase di costruzione delle immagini
viste dal periscopio è un pochino lenta,
così come le interfasi di passaggio da un
pannello di controllo all'altro, che impon-
gono la lettura di dati dal disco.
IL VOTO
Un altro piccolo capolavoro dalla ECA,
con solo qualche difettuccio. 8-.
42 - Commodore Computer Club
Ancora una
simulazione di arti
marziali, ma molto ben
realizzato
Computer: Amiga inespanso
Gestione: Joystick
Tipo: Arti marziali
Softhouse: Electronic Arts
U n gioco di arti marziali (come Inter-
national Karaté, Bruce Lee , The
Way of Exploding Fist...) non poteva che
essere scritto da un orientale ( Michael
Kosaka ) ed è certamente uno dei più
evoluti nel suo genere, con ben quattro
differenti specialità: Karaté, Kendo, Boe
Nunchaku.
Per chi non fosse troppo... acculturato,
precisiamo che il Karaté si basa su colpi
di mano e di piedi nudi, il Kendo su di una
lotta con una spada (di legno),
il Bo su scontri a bastonate, e che il
Nunchaku è uno strumento, originaria-
mente usato dagli agricoltori giapponesi,
trasformato in arma, consistente in due
bastoncini legati da una corda (resi fa-
mosi da Bruce Lee).
Inoltre è prevista la possibilità di lottare
in due avversari "umani" uno contro l’al-
tro.
Inizialmente si sceglie tra le cinque
pagode che contengono gli esperti delle
quattro specialità dette prima (una è per
scegliere la lotta a due), poi si indica, via
joystick, un livello tra tre di abilità dell'av-
versario ed infine si può iniziare a lottare
(Kumite) oppure scegliere la pratica
(Jiyu Renshu).
Il controllo avviene come sempre tra-
mite joystick: secondo lo spostamento
della manopola e la pressione del tasto
di fuoco si possono effettuare una note-
vole quantità di movimenti e colpi. Lo
scopo è di diventare maestri in tutte le
specialità, seguendo anche le osserva-
zioni ed i commenti dati alla fine di ogni
fase.
LA TECNICA
Vi è una varietà enorme di movimenti,
moltiplicati per le quattro specialità, che
richiedono molto tempo e molti smanet-
tamenti del joystick per essere ben ap-
presi: posizioni di guardia, piroette, salti,
calci e mosse specifiche per ogni specia-
lità marziale richiedono una certa quan-
tità di tempo anche per essere solo esa-
minate!
Le sequenze di animazione sono co-
munque sempre molto fluide e realisti-
che, con efferti sonori consistenti in cre-
dibili rumori di contatto osso-osso, osso-
arma o arma-arma, ed una gradevole
musichetta orientale di sottofondo.
Per dare un’idea dello sfoggio di tec-
nica, durante il gioco sullo sfondo volano
uccellini e si muovono foglie...
Un chiaro neo è invece l'eccessiva
lentezza degli spostamenti ai livelli infe-
riori, dove anche la scarsa combattività
dell’avversario rendono il gioco statico.
Commodore Computer Club - 43
SPACE HARRIER II
S pace Harrier è uno di quei giochi
classici che non hanno bisogno di
presentazioni, anzi sono un termine di
riferimento per tutti gli altri videogames
che li copiano più o meno sfacciatamen-
te. In pratica si controlla un uomo volante
(supposto essere in piedi su di una spe-
cie di hovercraft) visto di spalle, armato
di bazooka, che deve affrontare ad altis-
sima velocità un mondo in prospettiva
tridimensionale, velocissimo e pieno di
insidie.
Ovviamente vi sono parecchi livelli da
affrontare.
Inizialmente si può scegliere se avere
il fuoco rapido (continuato) oppure no, se
usare il joystick oppure il mouse per
controllare i movimenti, la direzione da
cui osservare il movimento, e seleziona-
re effetti sonori o musica di accompa-
gnamento.
Si può scegliere inizialmente, col mou-
se od il joystick, tra tredici differenti tipi
di scenografia, tutti caratterizzati da uno
sfondo scorrevole ad alta velocità.
LA TECNICA
Il succo di questo gioco sta nell’estre-
ma velocità di scorrimento dello sfondo
e nella nitidezza dei nemici che si mate-
rializzano dallo sfondo;questo, dal canto
suo, è piuttosto uniforme e banalotto,
senza alcuna raffinatezza tecnica degna
di nota.
La musica è piuttosto ripetitiva e, cer-
tamente, si potrebbe fare di meglio dal
punto di vista dell’interfaccia col joystick
ed il mouse.
Se avete nervi saldi,
provate a pilotare con
precisione il veicolo a
vostra disposizione
Computer: Amiga inespanso
Gestione: Mouse
Tipo: Arcade Game
Softhouse: Sega
IL VOTO
Un gioco concettualmente banale, ma
realizzato piuttosto bene. 7-.
44 - Commodore Computer Club
Una nuova simulazione
del gioco del tennis in
cui il realismo tocca
livelli mai visti prima
Computer: Amiga ìnespanso
Gestione: Joystick
Tipo: Simulazione sportiva
Softhouse: Loricieis
I l gioco del tennis conta ormai parec-
chie versioni per Amiga, ma questa è
sicuramente una delle più rifinite e tecni-
camente interessanti.
Si inizia scegliendo col joystick tra gio-
co singolo contro il computer, gioco a
due persone, dimostrativo ed opzioni
globali. Queste ultime consentono una
serie notevole di personalizzazioni, co-
me ad esempio la possibilità di giocare
al meglio in uno, tre o cinque set.
Iniziando si può scegliere tra un gioca-
tore "esistente" od uno creabile a nostro
piacimento, in base ad abilità (percen-
tuale di successi) nel portare i colpi: ser-
vizio, dritto, rovescio, volee, smash ec-
cetera.
Ovviamente anche noi otterremo un
posto in graduatoria in base ai risultati
ottenuti con gli altri giocatori (lo scopo
del gioco è diventare i migliori). Inoltre,
alla fine di ogni partita, si ottengono delle
complete statistiche sui colpi portati.
Dopo avere calcolato il grado di abilità,
si può indicare se giocare in: esibizione
semplice o doppia, allenamento, torneo,
coppa Davis o campionato. Ovviamente
il livello del gioco cresce proporzional-
mente. Come ultima scelta, prima di gio-
care, si può richiedere un campo in terra
battuta, sintetico, in cemento o d’erba
(che influiscono sui rimbalzi della palli-
na).
Il gioco viene condotto muovendo il
joystick per portare il giocatore al punto
giusto per colpire la palla. Premendo il
pulsante di fuoco inizia il movimento e
rilasciandolo, eseguendo uno sposta-
mento col joystick, si colpisce la sfera
con un particolare effetto. Effettivamente
occorre parecchia pratica prima di colpi-
re con una certa costanza la pallina, poi
si può iniziare a ricercare gli effetti da
assegnare.
LA TECNICA
La scena di gioco è suddivisa in due
campi (particolare utile quando giocano
due persone), dal momento che ambe-
due possono guardare la scena di gioco
come se fossero posizionati alle spalle
del giocatore mosso. Ciò è un grande
vantaggio rispetto ad altri giochi dello
stesso genere, e se si considera la velo-
cità e la fluidità del movimento, la nitidez-
za delle sagome e l’entusiasmante qua-
lità delle sintesi sonore, il tutto è vera-
mente interessante.
IL VOTO
Grande varietà di opzioni; tecnica e
realismo ineccepibili. 9.
Commodore Computer Club - 45
IT CAME FROM THE DESERT
sTrlclV " 0nÉ0! ”
you've lost thot assay box youTI be on thè
L ’ennesima avventura con animazioni
grafiche di altissima qualità dalla Ci-
nemaware, sulla scia del film americano
It Carne From The Outer Space, degno
erede di Defender of The Crown , Sin-
bad, Rocket Ranger, Capone...
IL GIOCO
Un meteorite è precipitato nel deserto,
proprio vicino al nostro amato villaggio,
Lizard Breath, provocando una mutazio-
ne nelle formiche. Vestiamo i panni di un
geologo che deve cercare un rimedio
entro quindici giorni (tenendo conto che
un minuto di gioco è un secondo di tem-
po, e che bisogna anche dormire), data
entro la quale le formicone decideranno
certamente di banchettare nel villaggio.
Fondamentalmente, per riuscire a
convincere il sindaco a darvi retta, biso-
gna raccogliere quattro prove fonda-
mentali (come e quali a voi scoprirlo), al
che egli acconsentirà alla fine di distri-
buire operai delle miniere, contadini, po-
lizia ed esercito per uno scontro finale
risolutivo con i formiconi (nome scientifi-
co Pugonomyrex Rugosus).
Come è consuetudine dei prodotti Ci-
nemaware (da notare che il programma
è stato scritto dalla Mirrorsoft), il gioco è
effettivamente un misto di avventura pi-
lotata da frasi scelte da menu (con il
joystick) e fasi arcade vere e proprie.
Queste consistono in: fughe da ospedali,
risse all’arma bianca, disinfestazione da
aereoplano, incidenti stradali, lotta coi
formiconi a suon di pistola ed altro.
Alcune di queste fasi sono veramente
notevoli: la fuga dall’ospedale, ad esem-
pio, potrebbe quasi essere un gioco a se
stante (in stile vagamente Gauntlet) con
una grafica dall’alto piccolissima ma det-
tagliatissima (quando ci si nasconde a
letto le coperte salgono fin sulla faccia)
ed il trucco sta nel camminare dietro le
infermiere per non farsi vedere.
L'avventura, invece, corre per binari
tutti da scoprire. Ad esempio il punto
debole dei formiconi, cioè dove mirare
con la pistola durante la fase arcade,
viene rivelato dallo scienziato del labo-
ratorio di Lizard Breath. Analogamente,
fare indagare su strane pietre radioattive
dal nostro assistente potrebbe fare bru-
ciare la nostra casa (se non si è bravi con
Tanti bei formiconi
giganti, da uccidere al
più presto, sono i nostri
pericolosi nemici
Computer: Amiga inespanso
Gestione: Joystick
Tipo: Avventura grafica
Softhouse: Cinemaware
46 - Commodore Computer Club
l'estintore), mentre dare troppa corda ad
una bella fanciulla che ha avuto un inci-
dente e chiede soccorso potrebbe cau-
sare più grane di quanto si potrebbe
credere.
La città comprende vari luoghi, tutti
dotati della classica scenografia a qua-
dretto della Cinemaware: pub, radio pri-
vata, miniere, laboratori, tribunali, reda-
zione, strade, aereoporto, fattorie, cine-
ma (proiettano Rocket Ranger, guarda
caso), studio di una chiromante (che ri-
corderà la zingara di Sinbad a più di un
lettore), Ospedale e via girovagando.
Per così tanti luoghi esistono ovviamen-
te un buon numero di personaggi dalle
personalità più o meno spiccate, da ca-
pire per scoprire come farli collaborare
con noi.
LA TECNICA
Il gioco è distribuito su tre dischetti, dei
quali il primo contiene l'introduzione tipo
"film** ed il programma vero e proprio,
mentre gli altri due dischi comprendono
tutte le scene e le sequenze di animazio-
ne. In pratica è quindi indispensabile, per
chi non possiede un disco rigido, dispor-
re di almeno due drive, dove dopo l'av-
viamento lasceremo sempre inseriti il
secondo ed il terzo disco. I tempi di
caricamento non sono comunque mai
lunghissimi.
La grafica è nella migliore tradizione
Cinemaware: il sapore anni '50 pervade
tutte le scene di gioco e si nota una cura
maniacale in particolari e dettagli che si
scoprono sempre nuovi anche dopo pa-
recchie ore di gioco: il trucco e le accon-
ciature delle donne, le automobili, la se-
gnaletica stradale, l’architettura dei pa-
lazzi e tutto il resto.
Gli effetti sonori consistono in una an-
gosciante musica di accompagnamento,
con alcune variazioni, e numerosi suoni
campionati per le varie scene arcade:
spari, urla, spiaccicamento di mostri, vo-
lo d’aeroplano e via digitalizzando.
L’interfaccia tramite joystick (per sce-
gliere le frasi e le azioni dal menu scor-
revole che compare dal basso) è rapida
ed efficace.
Da notare che quando compare il me-
nu, una scelta considerata "più ovvia" è
già selezionata di default e basta sem-
plicemente premere il pulsante di fuoco
per procedere.
IL VOTO
Un classico. Considerata la trama ap-
passionante, la varietà di possibili solu-
zioni e trame, la qualità tecnica e la
buona interattività diamo di cuore un bel
9.
Say nothink...! know vie you'vc conte. You are troubled by thè
coMing of thè Meteor.
Commodore Computer Club - 47
Finalmente un gioco
didattico ed educativo
insieme: come
"funziona" una città
Computer: Amiga (1 Megabyte)
Gestione: Mouse
Tipo: Strategico
Softhouse: Infogrames
U n gioco stile "Populous", dove però
si controlla la nascita e l’evoluzione
di una città con criteri statistici e scienti-
fici.
IL GIOCO
La simulazione della vita di una città si
svolge su di una quantità di fattori inter-
dipendenti: densità di popolazione, in-
quinamento, mezzi di trasporto, disponi-
bilità di servizi e di posti di lavoro, prote-
zione della Polizia contro i malviventi,
fornitura di energia elettrica, percentuale
di parchi e di zone pesantemente indu-
strializzate, protezione civile da parte dei
vigili del fuoco, capacità di scambiare
merci per mezzo di aerei, porti, eccetera,
eccetera.
Partendo dal nulla, solo con una som-
ma in dollari proporzionale al livello di
gioco scelto, il giocatore deve creare
centri residenziali, commerciali ed indu-
striali, scegliere la collocazione delle
centrali elettriche e delle relative linee di
collegamento tra i vari centri, collocare il
verde pubblico e le centrali di polizia per
combattere la criminalità e, insomma,
tenere in equilibrio centinaia di fattori
interdipendendti tra loro.
Ad esempio, inizialmente bisogna for-
nire alla città più case (che non uffici o
industrie) per favorire l'insediamento di
cittadini, ma col proseguire del tempo
tale equilibrio dovrà essere invertito.
Si tenga presente, però, che troppe
industrie favoriscono l'inquinamento, e
quando invece si hanno troppi cittadini
ed un’inadeguata rete di trasporto (ferro-
vie o strade) si forma troppo traffico (vi-
sibile) e il commercio scarseggia.
Inoltre pochi cittadini forniscono soldi
pagando le tasse: se si alza la percen-
tuale di tassazione (da menu), si guada-
gna di più, ma i cittadini tenderanno ad
emigrare ed il commercio e l’industria ne
risentiranno a medio termine.
Molti cittadini e zone con scarso verde
facilitano la criminalità, che scoraggia gli
insediamenti e costringe ad impiantare
dipartimenti di Polizia dappertutto, che
poi sottraggono buone fette degli introiti
delle tasse.
Si potrebbe proseguire nella descri-
zione degli innumerevoli fattori di equili-
brio di Sim City, un programma che ha
riscosso tanto successo da essere stato
prodotto praticamente per qualunque
modello di computer (perfino per i seriosi
48 - Commodore Computer Club
MS/DOS, PS/2 e Macintosh). Non per
niente il programma è fornito con un
ponderoso manualetto di una cinquantia
di pagine, ricco anche di consigli e di una
bibliografia per erudirsi sul come funzio-
na una città "ideale”.
Sono anche previste alcune scene
realistiche ed inventate (anche con mo-
stri tipo King Kong che spaccano tutto)
per potere offrire nuove situazioni di gio-
co a chi è già diventato esperto.
LA TECNICA
La versione Amiga sfrutta bene l’enor-
me facilità di interfacciamento prevista
da Intuition con una quantità di gadget,
finestre e menu.
Il grado di dettagli è notevole: trenini,
automobili, fontane, elicotteri, tifosi nello
stadio, aeroplani, navi, ponti sono beno
mossi nelle loro piccole dimensioni. I
gadget e le schermate con i grafici sono
realizzate con cura e dovizia di partico-
lari.
L’interfacciamento via mouse è eccel-
lente, alternativamente si possono usare
combinazioni di tasti.
Gli effetti sonori sono pochi ma davve-
ro buoni.
Il voto
Un gioco originale, scientifico, educa-
tivo, vario, con incentivi a volontà, adatto
a chiunque. 9.
Commodore Computer Club - 49
U na bella avventura alla Indiana Jo-
nes e Zak McKracken, estremamen-
te divertente e con numerosissimi sim-
patici problemi da risolvere, fanno di
questo programma un best seller inter-
nazionale.
MANIAC MANSION
IL GIOCO
Una meteora si è schiantata nei pressi
della casa dello scienziato Weird Ed.
L’oggetto celeste è semplicemente
un’entità aliena, che fa impazzire il dot-
tore e gli mette in testa strane idee su
come diventare padrone del mondo. Egli
.costruisce, infatti, una macchina per im-
padronirsi di posti importanti, che funzio-
na rubando l’intelligenza alle persone.
Prima di avviarsi alla prova di lavoro, egli
però desidera sperimentarla; quindi rapi-
sce Cindy, studentessa dell’attiguo col-
lege. Come tutte le eroine da videogioco,
Cindy è fidanzata, con Dave, che lotta
come un pazzo (lo controlliamo noi) per
liberarla. In virtù della massima "chi trova
to Unlock Turo on
In aiuto della nostra
up New kid Turn off
is Use Fix
fidanzata, con qualche
pericolo da evitare, ma
con humor
un amico trova un tesoro", inizialmente
si possono scegliere due amici tra gli
studenti del College per farsi aiutare:
Syd (cantante NewWave), Wendy (aspi-
rante giornalista), Bernard (cervellone
del corso di Fisica), Jeff{ atleta), Michael
(fotografo) e Razor (cantante punk).
Il bello del gioco è che la trama e le
istruzioni allegate non dicono ovviamen-
te granché della soluzione. Anzi, solo chi
possiede il pacchetto originale può leg-
gere su di un foglio specialissimo (non
fotocopiabile in alcun modo, ed assai
dispendioso da ricopiare) alcuni sugge-
rimenti fondamentali per sapere come si
procede nel gioco in taluni punti critici,
altrimenti del tutto incomprensibili.
Un deciso senso di "humor" riveste
moltissime delle situazioni di gioco che
si incontrano, con particolari e colpi di
scena veramente da barzelletta. Ovvia-
mente ogni personaggio ha una propria
personalità e può, almeno teoricamente,
completare l'avventura.
Ciò contribuisce a moltiplicare il già
alto numero di possibili modi di soluzio-
ne, che contribuiscono a mantenere l’in-
teresse anche quando si è risolto il gio-
co.
LA TECNICA
L’interfaccia col numero limitato di fra-
si fatte selezionabili col mouse, col quale
si possono anche indicare direttamente
gli oggetti interessati alle azioni sullo
schermo, è certamente considerato il mi-
gliore attualmente in circolazione, so-
prattuto dal punto di vista di chi non
conosce perfettamente l’inglese. Infatti è
sufficiente imparare il significato dei ver-
bi sullo schermo; poi si può giocare, a
patto di avere il foglio infotocopiabile.
La grafica è in animazione decisamen-
te buona, gli sprites sono belli alti, comi-
camente sproporzionati e seguono do-
cilmente i comandi impartiti dal mouse.
Gli effetti sonori sono semplici ma diver-
tenti.
IL VOTO
Un classico per Amiga, nel suo genere
e non, consigliato a tutti. 9.
50 - Commodore Computer Club
R aramente si può definire perfetta la
conversione di un top hit, questo
programma per Amiga, però, si avvicina
molto all’ideale, considerate le ovvie dif-
ferenze tecnologiche tra un computer
dedicato e d un personal computer.
IL GIOCO
Con il celebre Silkworm dell’anno
scorso, Ninja Warriors ha due buoni
punti di contatto: è stato convertito da
due eccellenti programmatori, (Ronald
Pieket Weeserik e John Crudy), che
hanno il vizietto di realizzare conversioni
migliori dell’originale sfruttando even-
tuali caratteristiche speciali del compu-
ter ospite. In questo caso era comunque
davvero difficile restare perfettamente
fedeli, in quanto la versione di sala gio-
chi è famosa per il triplo monitor e triste-
mente nota per la pochezza della trama.
Ninja Warriors per Amiga risulta quin-
di un gioco che gli inglesi definiscono
7ivo Player Horizontal Beat Em Up , ov-
vero "spaccatutto a due giocatori con
scorrimento orizzontale”.
Sono previsti sei livelli di gioco, con il
più largo ampio circa diciassette volte lo
schermo. Si incontrano strade, aereo-
porti, interni di case e tanto altro ancora.
Inizialmente si è armati solo di un limitato
numero di Shuriken (stelle appuntite) e
si procede incontrando una varietà di
nemici: esseri con più gambe e braccia
che denti, esseri con più denti che peli,
esseri con più peli di Lucio Dalla eccete-
ra. Tutti comunque con la caratteristica
di essere ottimi pestatori, guarda caso.
Abilità e destrezza
sono tassative in
questa conversione da
un noto coin up
Computer: Amiga inespanso
Gestione: Joystick
Tipo: Arcade combattimento
Softhouse: Virgin
LA TECNICA
La grafica è fedele all’originale, com-
primendola per farla brillare senza pro-
blemi anche su un solo monitor, anzi
qualcuno sostiene che sia stata trasferi-
ta direttamente con un Download dalle
ROM del videogioco originale. Si consi-
deri che i lunghissimi sfondi non si ripe-
tono mai e non sono generati algoritmi-
camente.
Comunque, nonostante l’area di gioco
sia una striscia piuttosto stretta rispetto
all’originale, i ninja sono pur sempre alti
circa sei sprites ed animati splendida-
mente; suggeriamo di ammirare in parti-
colare l’ondeggiamento dei capelli du-
rante i salti e l’animazione del carrarma-
to, consistente in ben diciassette foto-
grammi. Gli effetti sonori sono all’altezza
Commodore Computer Club - 57
S i tratta di un programma arcade e
strategico stile Cinemaware, che ha
richiesto circa quindici mesi per essere
completato ed è distribuito in tre lingue:
inglese, francese e tedesco.
IL GIOCO
Destinati ad ereditare il trono, quali
principi ereditari, abbiamo avuto la sfor-
tuna di imparentarci con uno zio che ha
assassinato gli altri membri della fami-
glia ed ha distrutto il nostro castello.
Non contento, lo zietto ha radunato un
esercito diabolico e si accinge ad attac-
care i nostri possedimenti.
Bisogna dunque abbandonare le mura
distrutte del castello ed ispezionare i
paesi circostanti.
Un rettangolo nella porzione superiore
destra dello schermo presenta la visione
dall’alto di paesi e luoghi, mentre quando
si incontra qualche essere vivente com-
pare un menu che consente di scegliere
tra alcune operazioni banali: dare, parla-
re, acquistare eccetera.
La grafica è sempre molto curata: per-
sonaggi che camminano, mappe deco-
rate "a mano" in perfetto stile medievale,
pittoreschi personaggi animati, eccete-
ra.
Come nei giochi della Cinemaware,
durante il gioco si può accedere a varie
fasi più puramente "arcade", tipo un tiro
con l’arco in stile simile a quello dei
giochi sportivi (a parte i vestiti e le arma-
ture del tiratore, invece delle tutine in
fibra sintetica), il braccio di ferro, la
scherma, il gioco dei dadi (puramente
casuale) ed altro ancora. Superando le
varie fasi arcade si acquista prestigio e
Un misto di Arcade e
Adventure, per nulla
all’altezza di prodotti
già noti da tempo
Computer: Amiga inesp. C/64
Gestione: Joystick, Mouse
Tipo: Arcade/strategico
Softhouse: Ubi Soft
riesce più facile radunare l’esercito da
schierare contro lo zio cattivo. Altro me-
todo per assemblare un buon esercito
consiste nello svolgere (ruffianamente)
missioni per potenti.
LA TECNICA
Si tratta del classico prodotto basato
molto più sull’impatto iniziale nei con-
fronti dell’acquirente che sui reali conte-
nuti ludici.
Ciò significa che la grafica di scena e
di movimento e gli effetti sonori sono
curati con grande perizia, ma sono del
tutto carenti incentivi, innovazioni ed ori-
ginalità.
IL VOTO
Solo per i patiti del genere Cinemawa-
re "impoverito". 6+.
52 - Commodore Computer Club
MYSTERY OF THE MUMMY
E cco un'avventura nei panni di un in-
vestigatore agli inizi del secolo, per
gli appassionati più esigenti.
IL GIOCO
Vestiamo i panni di un avvocato di
Amburgo che riceve la richiesta di aiuto
da parte di un onesto cittadino, Rudolf
Rabensberg , che ha perso una mummia
appartenente al padre. Sapendo che ad
un’asta è stata messa in palio una mum-
mia vagamente familiare, Rudolf ci chie-
de di indagare per scoprire se si tratta
dell’eredità paterna rubata in passato.
La scena del gioco si suddivide tra Am-
burgo e Monaco, dove si svolgono le
indagini, ambientate nell’anno 1912.
Inizialmente il gioco consiste soprat-
tutto nell’indagine in vari posti misteriosi
e ricchi di indizi sparsi per la città. Si
consideri che esistono più di un centina-
io di personaggi, molti dei quali sono
totalmente sconosciuti e non citati nelle
istruzioni, per cui bisogna arrangiarsi a
chiedere ad uno e all’altro per procede-
re.
Oltre alle scene di riflessione su più
elementi ed indizi contemporaneamen-
te, sono previste fasi di azione pura,
come ad esempio l’improvvisarsi farma-
cisti in un laboratorio chimico, o subac-
quei per recuperare reperti in fondo ad
un lago.
LA TECNICA
Lo schermo è suddiviso in varie sezio-
ni e col mouse, clickando opportuna-
mente su particolari delle schermate
grafiche, si aprono varie finestre che
Avete mai avuto a che
fare con una mummia ?
Non abbiate paura, è
piuttosto morta...
Computer: Amiga inespanso
Gestione: Mouse, tastiera
Tipo: Avventura
Softhouse: Rainbow Arts
consentono di esaminare particolari ed
indizi.
Da tenere d'occhio anche i quattro
indicatori grafici di fame, stanchezza,
soldi e sete.
L'interfacciamento con l’utente avvie-
ne tramite mouse e gadget sullo scher-
mo, oppure digitando su tastiera even-
tuali nomi o stringhe alfabetiche.
IL VOTO
%
Una discreta avventura, con interfac-
cia utente originale (anche se ridotta)
molti incentivi ma poca varietà di situa-
zioni. 6 e mezzo.
Commodore Computer Club - 53
WEIRD DREAMS
Un’operazione
chirurgica mal riuscita
ci proietta in un mondo
di incubi
Computer: Amiga inespanso
Gestione: Joystick
Tipo: arcade multifase
Softhouse: Rainbird
Luna Park, almeno come sfondo, dopo
essere passati per una rassicurante (si
fa per dire) "camera degli specchi".
LA TECNICA
La grafica di sfondo è sicuramente ad
ottimi livelli, mentre quella di animazione
risente ancora di una tecnica che non
sfrutta al massimo le caratteristiche Ami-
ga. In effetti il gioco è sicuramente un pò
(troppo) lento, anche tralasciando le fasi
di caricamento dai (due) dischi.
Gli effetti sonori e le musiche sono
buone.
IL VOTO
Un’idea originale, variegata ma tecni-
camente non perfetta. 7 meno.
I concetti alla base della trama di Weird
Dreams sono da ricercare nelle teorie
del subconscio e deH’immaginazione
umana.
Mentre siamo ricoverati in sala opera-
toria per una semplice operazione (ton-
sille?) andiamo in coma.
Ovviamente ciò non inibisce tutte le
funzioni vitali e, dalla visione dei camici
bianchi piegati su di noi, passiamo allo
sfrenato mondo dei sogni, anzi degli in-
cubi.
IL GIOCO
Il gioco vero e proprio consta di più fasi
differenti, col nostro protagonista rappre-
sentato da una figura stralunata, peren-
nemente in pigiama.
Nella prima fase, ad esempio, siamo
all’interno di una macchina per produrre
lo zucchero filato (o è la macchina ad
essere grossa, o siamo noi ad essere
piccoli o è proprio un incubo!) con un’a-
sta centrale che rotea e minaccia di col-
pirci con oggetti appiccicosi. Anche altre
fasi sono ambientate chiaramente in un
54 - Commodore Computer Club
Finalmente un gioco in
cui non bisogna
ammazzare nessuno
per giungere alla fine
Computer: Amiga inespanso
Gestione: Joystick
Tipo: Arcade
Softhouse: The Edge's
S noopy, il bracchetto disegnato da
Charles M. Schultz , è certamente
uno dei personaggi più noti nel mondo
dei fumetti insieme agli altri coprotagoni-
sti (Peanuts): Linus, Charlie Brown, Lu-
cy, Schroeder.
IL GIOCO
Linus ha smarrito la sua vitale coperta
e Snoopy il bracchetto si incarica di re-
cuperarla.
Questa semplice idea è la base per
ambientare in una grafica veramente da
cartone animato (vedi foto) una grande
serie di piccoli rompicapo da risolvere e
situazioni da affrontare per giungere allo
scopo finale.
Come in un adventure, si trovano in
circolazione parecchi oggetti, che Snoo-
py può raccogliere con un semplice mo-
vimento del joystick verso il basso. Tutti
gli oggetti hanno uno scopo, che deve
essere scoperto, ovviamente, dal gioca-
tore entro i 45 minuti di tempo concessi
per la soluzione. E’ importante notare
che il gioco ha almeno due possibili so-
luzioni, in quanto alla partenza la coperta
smarrita può essere nascosta casual-
mente in almento due posti differenti. Si
noterà anche durante il gioco che gli altri
personaggi (ci sono tutti i Peanuts) si
spostano, anche se non sono animati,
consentendo di movimentare e variare il
gioco.
LA TECNICA
Gli sprites sono grandi e disegnati in
maniera ineccepibile, sia per quanto ri-
guarda gli sfondi (belli come i cartoni
animati originali) che comprendono an-
che gli altri Peanuts immobili, sia per
quanto riguarda le animazioni di Snoo-
py, nuvolette, ranocchi, gatti...
E’ da notare che non vi sono normal-
mente tempi di attesa nel passaggio da
una schermata alla successiva.
Gli effetti sonori sono ridotti, ma ben
fatti. Il controllo del bracchetto col joy-
stick è quanto di più semplice ed imme-
diato si potesse pensare.
IL VOTO
Un gioco che ripone la maggior parte
del proprio fascino nella grafica di ottimo
livello e nella simpatia dei celeberrimi
protagonisti, pur essendo molto sempli-
ce nella trama. 7 e mezzo.
Commodore Computer Club - 55
AH /*** COLORASI
MEDICO
ARI ZONA
WAHTED
BELLE STARR
poe 15 000 $
Nei panni di un
cacciatore di taglie
mostriamo la nostra
bravura nel Far West
Computer: Amiga inespanso
Gestione: Mouse
Tipo: Arcade
Softhouse: Loriciels
U n classico spara a tutti con il revolver
ambientato nel Far West distribuito
da una vivace ed intraprendente sof-
thouse francese è quello che ci vuole per
calarsi nei panni di un bounty killer.
IL VOTO
Un simpatico gioco, tecnicamente va-
lido, anche se certamente non originalis-
simo. 7 meno.
IL GIOCO
Inizialmente si sceglie il ruolo che si
vuole ricoprire indicando il viso di uno tra
otto giustizieri.
Poi si passa alla scelta dell'ambienta-
zione (California, Nevada, Utah, Colora-
do, Nuovo Messico od Arizona ) e del
lavativo di turno tra sei differenti brutti
ceffi, dei quali il più quotato e difficile da
stendere è il solito Billy The Kid.
Le scelte si fanno sempre "sparando"
col mouse sul gadget 0 sulla figura inte-
ressata. Dopo le scelte si entra nel gioco
vero e proprio. Inizialmente l’ambienta-
zione è in una tipica strada del Far West,
con case costruite con travi di legno,
saloon a porta sbattente e varia fauna
umana più 0 meno armata. In pratica
bisogna sparare a tutto ciò che si muove,
0 minaccia di muoversi, tranne qualche
povero innocente chiaramente (quasi
sempre) riconoscibile, che se ucciso ci
fa perdere dei punti.
Si deve però sparare con discern-
imento, in quanto le munizioni non sono
illimitate.
LA TECNICA
La grafica è curatissima in tutti i punti,
non per niente il gioco, concettualmente
piuttosto semplice, è distribuito su due
dischi (da scambiare solo all’inizio di
ogni partita). Le scelte vengono eseguite
col mouse su cartine rifinite, con gadget
rappresentanti facce ed un solo effetto
sonoro (lo sparo).
Il pezzo forte è costituito dalle diver-
tenti animazioni del gioco vero e proprio,
in cui parecchi personaggi, molto pittore-
schi, sparano da tutte le parti, si rotolano
per terra, fanno girare le colf coi pollici
prima di sparare, spuntano dappertutto
velocissimamente.
WEST PHASER
56 - Commodore Computer Club
AMIGA BASIC
* l r ./* .v
, - . y t ■ < * -* ,•
li.. -Lt.
*.> **nr # /rjv ,j*
! ce^ '
.f V ;9D’iJ7
X’.^vvv.t
SCHERMO SU SCHERMO
’ • 9 m • * • « «•* • r V
• %* « • a • jv^fi
Un facile scroti, tutto in Basic, per migliorare la presentazione grafica
di qualunque programma
di Gregor Samsa
Intuition. la libreria che gestisce l'inter-
faccia utente più utilizzata, si presta perfet-
tamente ad un comodo apprendistato.
Non è che sia meno complessa di altre,
ma alcune sue funzioni sono accessibili da
Basic con molta facilità, per di più consen-
tendo prestazioni difficilmente implemen-
tabili con i soli comandi dell'interprete del-
la Microsoft (AmigaBasic. insomma).
Richiamare una Libreria da Basic, non è
però altrettanto automatico: si rende indi-
spensabile qualche operazione prelimi-
nare.
In pratica, dato che ci accingiamo ad u-
tilizzare Intuition. sarà necessario predi-
sporre un file Intuition. bmap per il nostro
programmino, da collocare (preferibil-
mente) nella stessa directory ove esso ri-
siederà). o nella directory Libs del disco
utilizzato per il boot (più complicato).
In effetti, si può anche inserirlo altrove (p.
es. in Ram Disk), purché se ne specifichi il
percorso al momento in cui viene aperta la
libreria (ne riparleremo tra breve).
Come più volte ricordato, per ottenere
questo tipo di file va utilizzato il program-
ma ConvertFD, presente nella directory
Basicdemos del dischetto Extras, se-
guendo le modalità illustrate più volte su
questa rivista.
Soddisfatti i bisogni (non troppo recon-
diti) del nostro AmigaBasic, non resta che
lanciare il Basic, copiare il listato di queste
pagine e salvarlo debitamente su disco:
qualche Guru (di troppo) potrebbe venire a
curiosare nelle nostre attività.
Si badi che la prima istruzione del
programma-
Library "intuition.library"
...presuppone che il file Intuition. bmap sia
presente, come già detto, nella stessa di-
rectory o in Libs del disco di lancio: se così
non fosse, si completi il nome tra virgolette
con il suo percorso completo.
Se. ad esempio, il file Intuition.bmap si
trovasse nella directory MieLib del disco
Work, il comando andrebbe così modi-
ficato:
Library "Work: MieLib/ intuition.
library"
Il breve programma, come si può consta-
tare mandandolo in esecuzione, è più che
altro un semplice Demo grafico, ma svolge
il suo compito grazie ad un sottoprogram-
ma (o. se preferite, funzione) compieta-
mente "autonomo”, estraibile dal suo con-
testo, e quindi facilmente sfruttabile in ap-
plicazioni più personali.
Ma procediamo con ordine.
Dopo aver selezionato Start dal menu
Run, viene subito richiesta in input una non
meglio precisata velocità.
Si digiti un numero non troppo alto (p.
es. 3). e Return.
Lo schermo scrollerà dolcemente verso
il basso, scoprendo una seconda videata
posta "dietro”.
Alla pressione di un tasto, il sipario tor-
• J v f •! £
nerà in alto con la stessa progrèssione. in
attesa di un'ulteriore pressione di un tasto,
che farà tornare in ambiente Basic.
Si eviti, durante l'esecuzione;, del pro-
gramma. di premere il pulsante sinistro del
mouse, che potrebbe rendere inefficace là
pressione dei tasti; qualora si verificasse,
tale eventualità, basterebbe comunque ri-
correre ai menu del Basic per uscire dal
programma, oppure tirare giù gli schermi
col mouse fino a scoprire la finestra di
output del Basic, clickarvi sopra, e quindi
premere un tasto. . ^ r .
UN NUOVO COMANDO
;
L'effetto "sipario" è ottenuto mediante
una nuova funzione, arbitrariamente cha-
mata VdScroll. chiaramente individuabile
in fondo al listato (Sub.... End Sub).
In pratica, svolgerà il suo compito ogni
qualvolta viene richiamata con la sintassi...
Vdscroll velocita%, indirizzoschermoEf
La variabile Velocita% rappresenta un
valore intero "corto”, cioè composto di
due byte, e può anche essere negativo.
In quest'ultimo caso, lo scrcHI avverrà dal
basso verso l'alto.
Chiaro che. per funzionare con valori ne-
gativi, lo schermo da scrolla/e dovrà già es-
sere abbassato (anche di un po : ). altrimen-
ti non produrrà alcun effetto. r
Commodore Computer Club - 57
La seconda variabile. Indirizzoscher-
mo& (riferita allo schermo da scrollare) ri-
chiede qualche approfondimento.
Giocando con Intuition, è possibile effet-
tuare un gran numero di operazioni, come,
tra l'altro, aprire e chiudere nuovi schermi e
finestre, spostarli, o disegnarvi sopra.
Alla base di tutto c’è sempre una "Strut-
tura". ovvero un gruppo di dati (numerici)
che risiedono da qualche parte in memo-
ria. e che la Libreria adopera per ricono-
scere schermi, finestre, ecc.
Queste strutture possono essere create
da programma, per renderle assolutamen-
te personali, ma... non è il caso di entrare
nei particolari, o ne verrebbe fuori un bel
trattato (lo si farà in altra sede, se abbon-
dantemente richiesto).
Al momento, tutto ciò che interessa sa-
pere. è che ad ogni schermo, anche se
creato tramite l'istruzione Screen del Ba-
sic. corrisponde una di queste strutture.
Ed è proprio l'indirizzo in memoria di
questo^fwpp© didati che dobbiamo forni-
ire alla nostra funzione (vedremo tra
poco per-chè), ..
i Per ottenérlo; è necessario aprire una fi-
\ nestra (istruzione Window) sullo schermo
* in questione. *
I Anche la finestra, come già detto, pos-
• siederà'tfrici sua Struttura in memoria.
L'indirizzo di quest’ultima, è però facil-
; mente ottenibile, dato che esiste (per for-
\ tuna!) la funzione Basic Window(7)
» (vedi manuale).
{
Ebbene (Machiavelli, al confronto, era
un principiante), al byte 46 di questa strut-
tura è memorizzato, in formato Intero Lun-
go (= 4 byte), l'indirizzo di inizio della
struttura-schermo.
In definitiva, la variabile che interessa
può essere perciò ricavata così.-
lndi rizzoschermo& = PeekL (window
(7) + 46)
...come riscontrabile nel listato (variabile
sch&).
VARIAZIONI SUL TEMA
Riassumendo, affinchè il nuovo coman-
do VdScroll funzioni correttamente, il pro-
gramma che ne fa uso deve quindi neces-
sariamente provvedere a:
1) Aprire la libreria Intuition.library, ricor-
dando (eventualmente) di . specificare il
percorso per rintracciare il file Intui-
tion.bmap precedentemente realizzato.
2) Aprire uno schermo (quello da scrolla-
re), e su di esso una finestra (che poi, volen-
do. potrà essere richiusa), quindi adopera-
re la formuletta appena vista per rintrac-
ciarne l'indirizzo di struttura.
3) Invocare la funzione secondo la sua cor-
retta sintassi. ■ •
Alla base del nuovo comando, come ri-
levabile nella Sub del listato, è la routine
Movescreen della Intuition Library.
Questa viene richiamata adoperando il
comando Cali, in quanto non restituisce
alcun valore; per lo stesso motivo t al mo-
mento di aprire la libreria, non è necessaria
BASIC; TROPPO FORTE
Second©.un luogo comune di (quasi) universale accettazione, il Basic è figlio ba-
stardo di più nobili e titolati linguaggi.
L'affermazione, tuttavia, è solo apparentemente limitativa.
JDa.unpuntq di vista "fisico" contiene certamente un minimo di verità; nessu-
no può negare che lo sviluppo (abnorme?) di tale linguaggio era in origine previ-
sto in funzione di una utenza dilettantistica.
Di contro si è visto come, a seconda delle macchine sulle quali è implementa-
to (ed in ossequio ad una corretta logica di evoluzione) proprio il Basic è andato
assumendo connotazioni simili a quelle di altri linguaggi.
Senza, ovviamente, pensare ad impossibili accostamenti con il linguaggio
macchina (mai mischiare il sacro con il profano), basti ricordare l'assunzione, p.
es. nel Commodore 1 28. di possibilità tipicamente "Pascaliane".
Con Amiga, anzi con AmigaBasic, lo stesso "Transfert" si è sviluppato nei
confronti del C. linguaggio di fatto molto più vicino alla struttura del computer...
rrìa ^rscVie più complesso.
Chi non ha voglia (o tempo) di scontrarsi con l'esuberante punteggiatura di
quest'ultimo linguaggio, non ha però di che lamentarsi.
A parte l'inevitabile, e spesso ingombrante, presenza dell'interprete, Amiga-
B^sip-può anch'esso sfruttare molte (non tutte!) delle risorse nascoste del no-
stro” àìmàtò 16 bit, a patto di sapersi aggirare (un po') tra le cosiddette
Librerie di sistema.
• Difficile?
L'importante è cominciare.
Naturajmente dalle cose più semplici, anche se non necessariamente
rrieriò utili'
58 - Córrtftìótiórè Computer Club
una preventiva istruzione Declare
Function.
Movescreen funziona solo per scroti ver-
ticali, ma è necessario ugualmente inservi
un parametro riguardante il movimento o-
rizzontale (0 nel listato).
La sua completa sintassi di chiamata
è:
Cali Movescreen (indirizzoscher-
moEr, X%, Y%j
...con X ed Y che indicano di quanti pixel
per volta deve essere spostato lo schermo
in senso orizzontale (non implementato)
oppure verticale.
Nel programma demo, viene banalmen-
te disegnato uno schermo "sottostante".
A parte l'ovvia possibilità di migliorarne
la grafica, magari caricando una immagine
di Deluxe Paint (se ne riparlerà...), lo scroll
potrebbe essere effettuato sullo schermo
disegnato: basterebbe eliminare la riga
contenente l'istruzione Screen 3...
Analogamente, si potrebbe rendere "va-
riopinto” lo schermo che fa da sipario, o
ancora fare scrollare in successione più
schermi: insomma, c'è pròprio di che
sbizzarrirsi.
Sulla base di quanto visto, diventa inoltre
molto semplice aggiungere altre feature ai
nostri programmi.
Una volta capito come ottenere l'indiriz-
zo in memoria della struttura di uno scher-
mo. è infatti immediata la possibilità di atti-
vare altre due funzioni di Intùftion che non
necessitano di altri parametri.
Si sta parlando di Screentoback (in-
dirEr) e Screentofront (indìrEr), che. ri-
spettivamente. portano indietro ed avanti
lo schermo il cui indirizzo è specificato co-
me parametro.
Per non restare sul vago, si provi ad ag-
giungere nel listato, subito sotto la secon-
da chiamata a Vdscroll (e prima della label
Fine:), queste due righe:
GOSUB attesa
CALL screentoback(schEr)
Lanciato ancora una volta itprogramma.
si vedrà come, dopo il risollevarsi dello
schermo-sipario, l'ulteriore pressione di un
tasto provocherà l'immediata. ^comparsa
dello schermo sottostante.
A parte le possibilità pratiche del co-
mando Vdscroll, non si sottovaluti l'impor-
tanza di quanto acquisito, ariòhe se le ca-
pacità di Intuition non si fermano certo
qui.
Applicazioni più sofisticate janno infatti
pendere l’ago della bilancia irffavore del C
o dell'Assembly.
Ma anche adoperando tali linguaggi, e
nonostante le ovvie differenze, l'uso di U-
brerie e Strutture rimane pressoché iden-
tico.
Per chi non mira così in alto, S'è comun-
que un Basico Vdscroll con ctifeonsolarsi.
DÉrtO FUNZIONE BASIC "VDSCROLL"
Vib • .lo
sintassi 1: t
CALL Vdscroll (velocitai , indir . schermo& )
sintassi 2: .
Vdscroll velocitai, indir . schermoà
1
= = = = = = = = = 2 = = = = = : = 2 = z = = = = = :
TlJOi ,
v -- — apertura libreria
LIBRAR "int^itiqn v library"
SCREEN 2 , 320 , 250 ,2,1: WINDOW 2,,, 0,2
• •. , ,, y. c .nn ’
* indirizzo schermo di scroll
SCREEty 3 , 320 , 250 ,1,1: WINDOW 3, , ,0,3
sch&=PEEKL ( WINDOW ( 7 ) +46 )
IF sch&=0 THEN
PRINT "ERRORE! PREMI UN TASTO"
GOTÒ fine
END ir’ ' .
, 'Tic ■. . .*.•
“ ' lei Z~ 7 “ r > ?! u " c Tsr £:• fcv r 1
INPUT ^velocita \ " ; v%:CLS
WINDOW, OUTPUT 2
PALETTE 0 , 0 , 0 , 0 : PALETTE 1 , . 93 , . 2 , 0
PALETTE 2, '33, .87,0 .PALETTE 3,1,. 13,. 93
LINE (35 , 35) -(170,170) ,l,bf
CIRCLE ( 100 , 100 ) , 50 , 3 : PAINT ( 100 , 100 ) , 2 , 3
LOCATE. 13 , 9 : PRINT "VDSCROLL ! "
LOCAI^ 27, 20: PRINT "PREMI UN TASTO"
Vdscroll v%,sch&
, .. II. ^»iv vC h -jIi
“£z ~ “ ^6 “j Tirile:” ”
WINDOW OUTPUT 3
LOCATE 27, 20 .PRINT "RIPREMI UN TASTO"
Vdscroll -v%,sch&
f ine:
GOSUB attesa
WINDOW CLOSE 3: WINDOW CLOSE 2
SCREEN CLOSE* 2-: SCREEN CLOSE 3 —
LIBRARY CLOSE: END . f ;0}2Afe
attesa :
x$=INKEY$ : IF x$ = ""THEN GOTO attesa *-
RETURN ip. va fb nb'HW*'
, • ; ;■ ' J
’«««« FUNZIONE VDSCROLL =======*«==*
• ^ * ‘ ‘ * ol r ^
SUB Vdscroll ( velocitai , schermo* ) STATIC
y%=260/velocita%
IF velocitalo THEN GOTO su
• -I J^A
GOSUB attesa
FOR x%=0 TO y%
CALL movescreen ( schermo& , 0 , velocitai )
NEXT
GOTO torna
SU*
FOR x%=y% TO 0
CALL movescreen (schermo&, 0 .velocitai)
NEXT
torna :
END SUB
:• emisi ìoqrn».
, __ r-. -
** ***** ** **** ***** *** .imi oc.er
Commodore Computer Club - 59
ARDUA FORM ATTAZIONE
Sono un novello utente di
Amiga 500, e mi sono scon-
trato con una difficoltà che
sembra insormontabile:
Non riesco a formattare i
dischetti nuovi in alcun mo-
do, neanche da Wor-
kbench. Faccio presente
che non posseggo il secon-
do drive e che, provando ad
usare l’opzione Initialize
del menu di Workbench, ot-
tengo solo segnalazioni ti-
po Disk Corrupt, DfO: Bad,
oppure Error While Ope-
ning Sys: System / Format.
Qualche volta tutto sembra
partire correttamente, ap-
pare la finestra con la scrit-
ta Formatting Cylinder
...79, il 79 diventa 78 e poi II
procedimento si blocca. Ho
provato ad usare DiskDoc-
tor, ma senza risolvere il
problema. Il colmo è che in-
vece la copia di un disco su
uno nuovo riesce perfetta-
mente! Che cosa posso fa-
re?
(Matteo Diterlizzi - Milano)
A nzitutto, DiskDoctor non
c'entra proprio niente in
quanto serve a ricostruire il
contenuto di un dischetto
danneggiato, ma sempre che
esso sia già nel formato Ami-
gaDos, ovvero preventiva-
mente formattato e (più o me-
no) infarcito di dati, files, ec-
cetera.
Il fatto che la copia riesca,
inoltre, fa supporre che non ci
siano problemi di malfunzio-
namenti hardware.
Prova dunque a seguire
scrupolosamente questa pro-
cedura (per un solo drive),
badando che il disco Wor-
kbench sia una copia integra-
le dell’originale, senza alcun
tentativo di "personalizzazio-
ne .
1) Dopo aver caricato il
Workbench, estrarre il disco
di sistema dal drive ed inseri-
re quello da formattare. Se
questo è ancora vergine, la
sua icona sarà per forza di
cose segnalata dal nome
DfO: bad (che sta per cattivo,
no buono, schifido).
2) Clickare (una volta sola,
o appariranno i vari requester
disk corrupt..., e simili) sulla
sua icona, dopodiché sele-
zionare Initialize dal menu
Disk del Workbench. Appari-
rà il requester: Please repla-
ce volume Workbench 1.3 in
any drive.
3) Obbedire, reinserendo il
disco di sistema.
4) Dopo qualche ronzio del
drive, al nuovo avviso di Ami-
ga (Please insert disk to be
initialized in drive dfO:), toglie-
re il disco Workbench (ma
soltanto dopo che la spia si è
spenta) e schiaffarvi quello
da formattare.
5) All’ennesimo messaggio
Ok to initialize..., clickare su
Continue , ed attendere che il
lavoro venga ultimato.
E così sia.
Se le varie fasi sono ese-
guite alla lettera, e con un
disco di sistema non manipo-
lato, tutto dovrebbe andare
per il verso giusto. Per pre-
cauzione, si controlli che il di-
sco Workbench sia protetto
dalla scrittura (tacca aperta).
Un pò perplessi lascia inve-
ce l’eventualità che il procedi-
mento di formattazione si av-
vìi regolarmente, e poi non
continui dopo l’iniziale segna-
lazione Formatting Cylinder.
In questo caso, occorre
controllare che non sia opera
di un virus (tramite un pro-
gramma virus killer), soprat-
tutto se il dischetto da format-
tare era già usato oppure si
era adoperato in precedenza
il floppy Workbench non pro-
tetto in scrittura, magari dopo
aver giocato un po’ con qual-
che game di provenienza
dubbia.
Per la cronaca, il vecchio
ma sempre diffuso Byte Ban-
dit Virus, provoca (tra le altre
cose) proprio questo tipo di
anomalia.
ISI *
DOVE SAVE?
Non riesco a registrare pro-
grammi basic su un disco
nuovo. Al momento del sa-
ve, il computer mi chiede il
disco Extras per salvarli lì!
(Carmine Esposito - Napoli)
P er superare la difficoltà,
anche in questo caso le-
gata soprattutto alla mancan-
za di un secondo drive (ma la
vogliamo capire che è quasi
indispensabile per lavorare
più tranquilli e distesi?) basta
far precedere, al nome del
programma da salvare, quel-
lo del disco voluto.
Se, per esempio, si intende
archiviare il nostro bel file ba-
sic in un disco cui abbiamo
assegnato il nome MieiLavo-
ri, basterà immettere nella fi-
nestra del Save...
Miei La vor'r.nomeprogram
ma
...badando a non dimenti-
care il simbolo due punti(:) e
senza lasciare alcuno spazio
prima e dopo di esso.
Per ricaricare il file nell’edi-
tor occorrerà, come ovvio,
fornire lo stesso tipo di indica-
zione (definita Path, cioè Per-
corso del file).
Come alternativa, dopo es-
sere "entrati” in ambiente Ba-
sic, si può impartire (diretta-
mente nella finestra di output)
il comando:
Chdir "Miei Lavori:”
Dal questo momento in poi
qualunque operazione di let-
tura o scrittura sul drive, verrà
forzata verso il disco (o direc-
tory) desiderato.
E’ chiaro che, in questo ca-
so, non sarà più necessario
specificare nel nome dei file
l’intero percorso.
60 - Commodore Computer Club
SGANCIARSI
DAL W-OB KBENCH
Ho copiato alcuni files in un
floppy che vorrei adopera-
re come ” disco lavoro", ma
non riesco a farli partire.
Esiste un modo per farlo ,
senza dover necessaria-
mente ricorrere al Wor-
kbench? E’ vero che esiste
un sistema chiamato Star-
tup-Sequence?
(Claudio Canis - Savona)
S e il problema è limitato
alla possibilità di lanciare
un file presente in un altro
dischetto, valgono le stesse
considerazioni espresse nel-
la risposta precedente, anche
se non si tratta di files basic.
Se, invece, si vuole rende-
re indipendente il disco che li
contiene, il discorso si com-
plica un po’, e non può essere
esaurito in questa sede.
Grosso modo, comunque,
si devono effettuare le se-
guenti operazioni:
Copiare le directory L, Libs
e Devs prelevandole dal di-
sco Workbench.
Creare una directory S (co-
mando Makedir Nomedi-
sco.S) ed editare un file (non
un "sistema”) di nome Star -
tup-Sequence che contenga
la procedura di lancio; dicia-
mo che, ridotto proprio al mi-
nimo, basterà che contenga
le sole due istruzioni...
Loadwb
Endcli
Creare una directory C, e
copiarvi almeno i comandi
adoperati nella startup-se-
quence, oltre ad Execute e
Run{\\ tutto va prelevato dalla
directory C del disco di siste-
ma).
Installare il dischetto, ovve-
ro digitare da Shell il coman-
do Instali Nomedisco:
Per chi è alle prime armi,
non sarà proprio come bere
un bicchier d’acqua: nella
schematica descrizione, oltre
ad alcune difficoltà intrinse-
che, si nascondono infatti nu-
merosi trabocchetti, supera-
bili solo con un minimo di
esperienza.
Un consiglio: cimentarsi
nell’impresa solo dopo aver
approfondito le cognizioni
che riguardano l’uso di Shell
e del Dos in generale.
Per chi si sente già pronto,
o vuole comunque provarci,
si ricorda che l’argomento è
stato trattato in modo molto
più approfondito sul non lon-
tano numero 68 (ottobre ’89)
della rivista, articolo Wor-
kbench lavori in corso (even-
tualmente disponibile presso
il nostro servizio arretrati).
SI
DE GUBIS
Ogni tanto, usando il mio
Amiga 500 inespanso, ap-
pare il fatidico " Guru Medi-
ta t io n".
A parte gli altri vantaggi de-
privanti dall'avere un mega
di memoria, il problema si
risolverebbe se acquistas-
si l’espansione?
(Antonio De Giorgi - Marciano
di Leuca)
I l Guru, caro lettore, è una
bestia fedele: non abbando-
na mai il suo amato padrone.
Con l’espansione vengono
di certo ridotti i tilt legati alla
scarsa disponibilità di memo-
ria, ma, ahinoi, non sono solo
questi i motivi che portano al
blocco di Amiga.
Rimedi?
Una buona dose di rasse-
gnazione, sperando in tempi
migliori (Kickstart 1.4?), ma
nel frattempo fornendosi di
qualche programma tipo
Gomf oppure Noguru, che
consentono almeno di limita-
re i danni.
SI
COMINCIARE CON IL C
Ho deciso di imparare il linguaggio C, così mi sono
procurato un compilatore ed ho iniziato a leggere il
testo di Kernighan & Ritchie, provando poi sul com-
puter i risultati dei miei esperimenti. Sono riuscito
ad ottenere qualche risultato, ma il mio lavoro si è
arenato nell’impossibilità di capire e conoscere le
decine di Flag e strutture che si trovano nei file di
inclusione...
(Paolo Flora - Paluzza)
r>i • ,
\f , »
> • s
L a lettura del Kernighan & Ritchie (per i meno esperti:
i padri fondatori del linguaggio) è senz’altro un passo
(quasi) obbligato per conoscere il linguaggio C. ma è
altrettante) importante accostare il linguaggio alla strut-
tura dell^ macchina, nel nostro caso l'Amiga.
Il che,, tradotto in parole povere, significa avere la
possibilità di documentarsi con esattezza su librerie,
strutture, device, hardware, eccetera.
A tale scopo, ed il discorso non si limita al solo C. è
pressoché indispensabile acquistare i quattro (o tre nell'
ultima revisione) volumi Reference Manual della Addi-
son - Wesley (in inglese), ognuno dei quali descrive:
Libraries and Devices, Exec, Intuition. Hardware.
A questi, inoltre, è consigliabile aggiungere un qual-
che testo didattico non finalizzato all’apprendimento ge-
nerale del C, ma specificamente dedicato all'Amiga.
Ogni buona libreria, e spesso anche i negozi di articoli
informatici, propongono in genere una discreta scelta di
titoli al riguardo, anche in italiano.
Il tutto, come intuibile, comporta un non indifferente
danno.., alla tasca.
Per chi non potesse (o volesse) sottoporsi a questo
volontario salasso, non resta che affidarsi a quanto
rintracciabile tra le pagine delle varie riviste del settore.
Commodore Computer Club -61
EB1NTER QK
Posseggo una stampante
Commodore Mps 1250, che
adopero con il mio C/64. Vi-
sto che penso di passare
ad Amiga, sapreste dirmi
se esistono problemi di
compatibilità?
(Marco Aliena - Pordenone )
N essun problema, il con-
nubio è reso possibile
dall'Interfaccia Centronics di
cui è dotata la stampante.
Inoltre, a maggior garanzia,
nei dischetti di sistema esiste
un driver specifico proprio per
la MPS 1250. in emulazione
EpsonX.
P.S. La lettera, come del
resto avviene per tutte (anche
quelle non pubblicate), è sta-
ta "letta con attenzione".
ORIGINALI?
Con alcuni giochi originali
che possiedo, mi capita di
veder apparire un request
"Please insert volume L" e
lo start si blocca; oppure
"Error validating disk” e il
consiglio di ricorrere a Di -
skdoctor: dopo averlo fat-
to, però, non si è riparato
nulla.
(Liborio Di Miceli- Cor leone)
I l secondo problema, può
essere dovuto ad involonta-
ri maltrattamenti del floppy,
oppure a precoci estrazioni
dal drive mentre questo è an-
cora in funzione.
In questi casi. Diskdoctor
funziona solo se il disco non
è dotato delle protezioni che
ASSEMBLY CONTRO C
Sono un "ex” del C/64, e credo di aver fatto uno sbaglio
ad imparare il linguaggio macchina per quel computer
(seguendo i vostri consigli), visto che su Amiga sono
costretto a studiare tutto daccapo. Meglio dedicarsi al
basic, o al C, che almeno è standardizzato su tutti i
computer.
(Giuseppe Palermo - ??)
S e, come dici, hai imparato bene \'Assembly"ati otto bit",
allora non può certamente esserti sfuggita l’introduzio-
ne che normalmente viene fatta a tale linguaggio, tanto nei
testi specializzati che nelle pagine della nostra rivista.
Dove, ben in evidenza, è stato sempre precisato che il
linguaggio macchina è il meno "trasportabile" in assoluto,
visto che, di norma, dialoga direttamente con il micropro-
cessore specifico per il tipo di computer. Il che, come ben
saprai, comporta vantaggi e svantaggi.
Non è però corretto affermare che quanto in precedenza
appreso "non serve a niente": anche se i codici dell Assem-
bly 68000 saranno diversi da quelli del 6502. un byte è pur
sempre un byte, e la sua manipolazione, con qualche
doveroso approfondimento, non è poi così differente.
Con questo non si vuol dire che con Amiga siano tutte
rose e fiori, ma ciò che si è imparato su un C/64 non è da
sottovalutare.
Se non altro, evita di dover apprendere ex novo le basi
teoriche del linguaggio.
Un Branch o un Jump to subroutine (Jsr), o uno scorri-
mento di bit, per esempio, non saranno una novità assoluta,
come pure l'uso di Macro Istruzioni in un sorgente svilup-
pato con un buon pacchetto Assembler.
Paradossalmente, molti singoli codici dell'Amiga risulte-
ranno un sollievo per gli "ex" del C/64, che per raggiungere
lo stesso scopo dovevano creare intere routines
Di indubbia maggiore difficoltà è il cambiamento di "logi-
ca" cui si è costretti, soprattutto in rapporto al famoso
"multitasking" e alla nuova dimensione a 16 bit.
Inoltre, non bisogna dimenticare che l’Assembly può
essere utilizzato in due modi: rivolgendosi direttamente
all’hardware, o adoperandolo ad un livello leggermente più
alto, sfruttando le routines di sistema (le cosiddette librerie).
Il primo è decisamente ostico e non sempre consigliabile,
dati i continui mutamenti apportati al sistema dalla Commo-
dore.
Il secondo, invece, è molto più abbordabile.
Quanto al C. la cui conoscenza (anche approssimativa)
è diventata pressoché obbligatoria per chi usa Amiga, è
certamente più standardizzato dell'Assembly, ma. a meno
che non ci si limiti a qualche Printf : implica anch'esso un
notevole approfondimento dei meccanismi interni del com-
puter. E, si badi, si sta parlando proprio dei meccanismi
particolari di un certo tipo di macchina.
Non si pensi, quindi, che sia poi cosi facile da... digerire,
o che. cambiando computer, tutto rimanga assolutamente
identico.
Le preferenze, poi, sono un fatto soggettivo, oltre che
legate a particolari applicazioni: c e chi (indovinate come la
pensa il sottoscritto...) detesta la sintassi del C. e chi la trova
sublime, ma l'ideale sarebbe conoscere entrambi f linguag-
gi.
Salvo poi scoprire che. tutto sommato, il buon vecchio
basic (non necessariamente Amiga Basic, e non necessa-
riamente interpretato) è più che sufficiente per quello che
si intende realizzare.
62 - Commodore Computer Club
spesso sono presenti nel
software commerciale.
Gli altri inconvenienti, a di-
spetto di quanto affermato,
sono per lo più da attribuirsi a
copie pirata dei games.
13
A2000 E MEMORIA
E ’ possìbile ovviare all’i ri-
conveniente dovuto alla
configurazione degli Ami-
ga 2000 con 1 Mega byte di
Chip Ram, per cui alcuni
giochi non funzionano ,
mentre su A500 girano be-
nissimo?
(Daniei San - Firenze) ..
- . - %,'s.
« « # *
Ho letto su Postamiga del
n. 70 (Dicembre 89) la rispo-
sta data ad un possessore
di Amiga 2000 che chiede-
va come appurare il tipo di
Ram di cui disponeva. Se-
guendo quei consiglio , ho
provato a dare il comando
Avaii, con II seguente risul-
tato: Chip 421696... (ecc,);
Fast 39252Q...(ecc.); Total
8l4224...(ecc.). Inoltre alcu-
ni giochi che posseggo non
funzionano: si tratta dello
stesso motivo?
(Bruno Celati - Milano)
E ffettivamente, l’introdu-
zione del Mega di memo-
ria tutta di tipo Chip , ha creato
qualche problema di compa-
tibilità con del software che
non prevedeva una simile
configurazione.
In alcuni casi, l'inconve-
nienté può essere risolto
semplicemente aggiungendo
delle espansioni di Fast Ram
al 2000 (non certo solo per
qualche giochino, dati i costi).
Come testimoniato dalla
seconda lettera, però, non
tutti i problemi devono essere
attribuiti al Mega di Chip
Ram. >
Il responso di Avaii citato
da Bruno Celati, infatti, dice
chiaramente che nel suo ca-
so la configurazione è quella
consueta riscontrabile anche
nei 500 con espansione di
memoria: 1 /2 Mb di Chip e 1/2
Mb di Fast Ram.
Delle incompatibilità, tal-
volta, possono sorgere an-
che in rapporto alla versione
del Kickstart, in questo caso
più spesso per colpa dei pro-
grammatori che dei progetti-
sti di Amiga. Per non parlare
poi, ed è certamente questa
la causa più diffusa (anche se
inconfessata), degli interventi
"esterni H sul software in modo
da renderlo copiabile oppure
per eliminare qualche copy-
right.;»-
; 13
• •
TUTTO A SUO TEMPO
Perchè non parlate del
KickStart 1.4, che pare ver-
rà immesso presto sul mer-
cato?
(Emanuele - Vimercate)
(Omar Buono - Firenze)
P erchè le "anticipazioni”
non servono quasi a nien-
te. Quando verrà effettiva-
mente messo in circolazione
ufficialmente, se ne valute-
ranno a fondo le potenzialità,
lo si testerà ben bene, ed in-
fine se ne scriverà a iosa, ma-
gari colmando le (abituali) la-
cune del suo manuale.
Solo così non risulterà solo
teoria.
SFOGO AMARO
VI scrivo questa lettera
mentre sono ancora sotto
l’effetto della frustrazione e
dello svilimento più totali.
Dopo essere stato per di-
versi anni un felice ed
esperto "sessantaquattri-
sta ", da circa un mese sono
diventato un " Amigo ", ed
ho subito cominciato a
s ma netta re sul mio A-500
inespanso, con qualche ri-
sultato. Dopo aver perso
molto tempo, non sono pe-
rò riuscito a venire a capo
del vostro articolo "Un si-
stema a prova di Guru"
(n.66), che tratta della Rad.
L 'argomento mi è sembrato
molto interessante, e credo
di averlo capito, ma non rie-
sco ad installarla in alcun
modo, in particolare, dopo
che inizia l’esecuzione, ii
sistema mi segnale che la
Ram è "Full", oppure, dopo
vari tentativi di modifica,
che non può creare la direc-
tory Rad:L. Ma perchè?
(Tonino Giorgi - Ascoli Pice-
no)
C oraggio, caro lettore. Non
sei il solo ad esserti sen-
tito perso, dopo la decisione
di "appendere al chiodo" la
familiare tastiera del C/64 o
C/128.
D’altra parte, sebbene l’uso
generico di Amiga sia estre-
mamente semplice, un ap-
proccio più evoluto richiede
un minimo di assuefazione al-
le nuove caratteristiche.
Ma veniamo al problema
Rad.
Intanto, con un 500 ine-
spanso, è consigliabile asse-
gnare al parametro HighCyl
della MountiList un valore
non troppo alto, non supe-
riore a 29.
Il fatto, però, che nel caso
specifico il file batch che do-
Commodore Computer Club - 63
ACCHIAPPA PARAMETRI
Ho un problema che mi assilla: come posso fare , ado-
perando il Seka Assembler, a "catturare"! caratteri che
andrebbero inseriti a destra di un comando che voglio
progettare? E come procedere per aggiungere II byte
nullo necessario per passare il parametro alla funzione
\Nrite?
(Luigi Marchetto -?? )
Q uello accennato è uno dei primi aspetti che di solito si
affrontano nella programmazione Assembly, ovvero il
prelevamento di uno o più parametri assegnati tramite una
linea di comando.
Per essere più chiari: se, in una finestra Cli o Shell si
digita (p. es.) List dfO :, List è un file eseguibile che verrà
caricato dalla directory corrente o da C:, mentre dfO: costi-
tuisce un parametro che dovrà essere letto dal programma
di nome List.
La procedura per leggere la stringa posta dopo il nome
del file, è più semplice di quanto si possa credere.
Dopo che si preme il Return (o Enter), infatti, Amiga
colloca in Ram la stringa-parametro, e i due registri AO e
DO conterranno, nell’ordine, l’indirizzo ove reperirla e la sua
lunghezza (che comprende anche il Return finale).
In pratica, per gestire il parametro, il programma non
dovrà fare altro, come prima operazione, che recuperare il
contenuto di AO e DO e salvarlo in una costante o nello
stack.
Vediamolo con un esempio, che svolge proprio il compito
cui il lettore fa riferimento: preleva la stringa parametro, e
la stampa sul video.
In pratica, un vero e proprio Print, molto stringato, ma
efficace e veloce, forse più del tradizionale Echo.
Si copi, dunque, .il disassemblato presente nel riquadro
con reditor del Seka Assembler (per entrarvi, tasto Escape
dopo aver lanciato il programma).
Si torni poi al prompt Seka> ripremendo Escape, e si
impartisca il comando W per salvare su periferica il sorgen-
te (non si sa mai...).
Si assembli la routine con A (e magari H come opzione
quando richiesto) e, se non si sono verificati errori, si
proceda infine con WO, che produrrà il file eseguibile cui
assegneremo il nome Print (o altro).
Per testarne il funzionamento, si impartisca in una fine-
stra Shell oppure Cli...
Print quello che vuoi
...seguendo le con-
suete regole del Dos,
ovvero segnalando il
path completo del co-
mando se si trova in
una directory o disco
diversi da quella cor-
rente (p.es.
dfl : Print...).
Come risultato, ve-
dremo stampare su
schermo la stringa
" quello che vuoi".
La routine, come si
può notare, è estrema-
mente semplice (an-
che se non molto origi-
nale), e può essere
ampiamente migliora-
ta.
Non fa altro che inse-
rire nello stack, come
primissima operazio-
ne, i registri AO e DO,
per evitare che il loro
contenuto venga perso
nelle successive fasi,
dato che questi registri
vengono comunemen-
te adoperati dalle fun-
zioni di libreria.
Volendo, si potrebbe
decurtare la lunghezza
(in DO) di una unità, eli-
minando così il carattere di ritorno carrello che è incluso
nella stringa.
Non è invece necessario porre il classico 0 in coda, dato
che alla funzione Write viene comunicata la- lunghezza
della stringa. ,9h
Le specifiche di quest’ultima (AO e DO) vengorjp preleva-
te dallo stack dopo l’apertura della Dos Library e il e la
determinazione dell 'handle di output, necessari per attivare
la funzione Write.
Quest’ultima richiede, prima di essere richiamata dal
tradizionale Jsr, che in DI sia presente' THandlé~di output,
in D2 l’indirizzo della stringa e in D3 la sua lunghezza
Sysbase: equ 4
LVOopenlibrary: equ -552
LVOcloselibrary: equ -414
LVOoutput: equ -60
LVOwrite: equ -48
* salva indirizzo e lunghezza
movem.l aO/dO, -(sp)
* apre libreria dos
móve.t #nomlib, al
moveq #0, dO
move.l sysbase, a6
jsr LVOopenlibrary (a6)
tst.l dO ; se 0, errore
: beq uscita
move.l dO, a6 : base doslib.
* preleva handle output
jsr LVOoutput (a6)
move.l dO, di ; per write
* scrive stringa parametro
movem.l (sp) + , aO/dO
move.l a0,d2 J
move.l dO, d3
jsr LVOwrite (a6 )7BU
* chiude libreria dos
move.l a6,a1 ‘so
move.l sysbase, ba6
jsr LVOcloselibrary (a6)
u ^ ose
uscita: rts
. ^ 6 " .
nomlib: de ’dos.library’, 0
vrebbe installare la Recove-
rableRam si blocchi all’inizio,
ovvero quando tenta di crea-
re la directory L nella Rad, fa
pensare ad un qualche errore
di copiatura.
Con molta probabilità, da
qualche parte si è adoperato
Ram: invece di Rad:.
Il tre file batch pubblicati
nell’articolo, comunque, sono
anche stati inseriti nel disco
Amigazzetta 6, e funzionano
correttamente.
Per consolarti, prova a ri-
cordare il primo mese di con-
tatto con il C64: funzionava
tutto al primo tentativo?
64 - Commodore Computer Club
66 - LADRI DI MUSICHE
Lavorando con Amiga capita spesso (sempre?) di ascoltare le meravigliose musiche che fanno da
sottofondo a videogames o programmi demo di varia natura. Non tutti sono abili compositori di brani
musicali, e nemmeno numerosi sono coloro in grado di usare i tanti programmi in grado di gestire la
musica. Ecco, dunque, la possibiltà, operando in Seka Assembler , di “estrarre" i brani musicali, dai
programmi che possediamo, per inserirli in nostri listati. Inutile dire che la procedura è consigliata a chi
conosce abbastanza bene Amiga e, soprattutto, ha una certa dimestichezza con la gestione di un
programma assemblatore.
74 - OBJECT A BORDO!
*%
Al contrario del programma precedente, questo listato consente anche ai principianti (dotati, però, di
buona volontà) di realizzare una procedura decisamente interessante, ed altrettanto "universale", per
la gestione semplificata di oggetti grafici. Si tratta, in pratica, di un "Data Maker" (di 64-iana memoria)
in grado di far incorporare a nostri programmi Basic i dati relativi a Sprite e Bob realizzati comodamente,
a parte, con uno dei tantissimi tool di pubblico dominio. Un mini gioco dimostrativo consente al lettore
di meglio comprendere la tecnica descritta.
Nessun albero viene abbattuto per gli inserti di Commodore Computer Club, stampati su carta riciclata al 1 00%
Le musiche
che spesso
corredano i
programmi
posti in
commercio
funzionano
"sotto”
Interrupt,
vale a dire
senza
disturbare il
\t\OSv • 1
programma
principale
LADRI DI MUSICHE
Una procedura efficace per impadronirsi delle musiche dei vostri
videogames preferiti; e per imparare l’Assembly di Amiga
di Donato De Luca
C omporre musica è più difficile che program-
mare in un qualsiasi linguaggio di program-
mazione. Chiunque può imparare a program-
mare, più o meno bene, a seconda del tempo
che vi dedica e a seconda della sua predispo-
sizione. Per imparare a programmare non ci
vogliono particolari doti oltre ad una spiccata
tendenza al masochismo spirituale e materiale.
Le cose appena dette non valgono, però, per
imparare a comporre musica o a disegnare: se
non si ha un po’ di talento artistico non si riuscirà
mai a comporre musica decente, che non sem-
bri il lamento di un cane, oppure a fare un
disegno che non sembri un quadro astratto.
Tuttavia un gioco, privo di una buona grafica
o una buona musica, rischia di sfigurare rispetto
R ' l U.BDF tW
fl RE l3 9a©
©P%
>eocp @0 ©
©o
RZROBRTIE TER fi
66 - Commodore Computer Club
ad un altro, magari meno divertente e meno
complesso.
Le stesse cose valgono per i demo in cui,
anche se l’aspetto più importante è quello della
programmazione, anche la musica e la grafica
ricoprono un ruolo molto importante.
Che cosa possiamo fare allora, noi poveri
programmatori senza un briciolo di talento arti-
stico, per rendere più attraente graficamente e
musicalmente il nostro ultimo gioco con scrol-
ling parallattico a 6 livelli?
Molti programmatori affidano la realizzazione
della grafica e delle musiche a grafici e musicisti
professionisti; inoltre in ogni gruppo di pirati vi
è uno o più membri molto bravi a disegnare e a
comporre musica.
Tuttavia, per procurarsi delle buone musiche
vi è anche un altro sistema: rubarle.
Molti musicisti per comporre le musiche de-
stinate ai demo usano un editor musicale chia-
mato Sound Tracker, di cui ne sono state fatte
un’infinità di versioni, la prima delle quali è stata
scritta da Karten Obaraski.
Tali musiche possono essere inserite con
elevata facilità nei giochi, nei demo, perfino nei
word processor, poiché la stragande maggio-
ranza delle routine replay (che, ricordiamo sono
quelle routine che hanno il compito di suonare
le musiche) girano in interrupt, di solito durante
quello generato dal Vertical Blank .
Dal momento che le musiche seguono sem-
pre la stessa struttura, dal punto di vista dell’or-
ganizzazione dei dati, qualche furbacchione ha
pensato che, una volta che il demo ha finito di
essere eseguito, i dati della musica saranno
ancora presenti in memoria.
Conoscendo la struttura con cui viene salvato
un modulo (ricordiamo che un modulo contiene
i dati riguardanti la musica realizzata con il
sound tracker e anche quelli relativi agli stru-
menti utilizzati), basterà scandagliare l'intera
memoria alla ricerca della fatidica struttura dati;
una volta trovata la si potrà salvare.
Questo è il principio su cui si basano i Sound
Rippers. Essi in genere, una volta localizzato il
brano musicale, possono salvare i suoi dati, e
quindi la musica stessa sotto forma di modulo
o di musica (la quale, però, non contiene i dati
degli strumenti utilizzati), salvare solo uno stru-
mento, suonare la musica, modificarne il nome
ecc..
Tuttavia, per far suonare una musica salvata
sotto forma di modulo, ci deve essere qualcosa
che la suona. Questo qualcosa non è altro che
una breve routine in assembler chiamata, di
solito, Replay Routine.
Ciò implica che, per far eseguire la musica
appena rubata senza l’ausilio di un sound-rip-
per o di un editor compatibile, dovremo usare
per forza un assemblatore in modo da unire in
matrimonio la routine suonatrice con i dati da
suonare.
RIPPER TIME
Recentemente ci è capitato un Ripper che
include, tra le sue numerose funzioni, un’opzio-
ne mai apparsa prima: la possibilità di salvare
la musica direttamente come file eseguibile, per
farla successivamente suonare senza passare
per l’assemblatore; il che, obiettivamente, è una
pacchia.
Il suddetto programma si chiama Soundtrac-
ker Utilitie ed è un programma di pubblico do-
minio (freeware) scritto da Gigicar del gruppo
Phoenix ( che, se non andiamo errato è un grup-
po di programmatori Belgi).
L’utility è strutturata in 5 menu: Load, Save,
Options, Help, Quit. Inoltre è presente (in bas-
so) un simpatico equalizzatore che monitorizza
i quattro canali audio. Vediamo le funzioni prin-
cipali:
Load: Offre tre opzioni, la prima delle quali
permette di caricare un modulo da disco. Ricor-
diamo che un modulo, dato che oltre ai dati della
musica contiene anche quelli degli strumenti
utilizzati, spesso raggiunge i 60 kbytes, ma a
volte supera anche i lOOkbytes. L’opzione è
molto comoda in quanto permette di rendere
eseguibili nostre musiche composte, sempre se
ne siamo capaci.
■ sìb
,, . ;
I brani
musicali
sono formati
■ * * • * *- *>
da piu
moduli,
ognuno
■ ' - 'T->
incaricato di
. \ ;
svolgere
determinate
funzioni
La ricchezza
eia
complessità
delle opzioni
disponibili
non sempre
esaudiscono
le esigenze
dell’utenza
COPIALO PER TELEFONO
Anche i listati presenti in queste pagine possono
esser tirati giù per mezzo del modem; se, ovvia-
mente, ne possedete uno.
La procedura per collegarsi con la nostra banca
dati (attiva 24 ore su 24) è riportata su altra parte
della rivista.
Chi non possiede il modem (che aspettate a
procurarvelo?) può tuttavia richiedere il dischet-
to, contenente il software, presso il nostro servi-
zio arretrati.
Save: Questo menu è la perla del program-
ma.Contiene 6 opzioni: Modules, Song, Sam-
ple, Executable , Plst, Quit.
La prima opzione (modules) permette di sal-
vare la musica trovata come modulo. Bisogna
stare attenti allo spazio perchè un modulo ne
occupa parecchio.
La seconda opzione permette di salvare solo
i dati relativi alla musica.
La terza opzione permette di salvare uno o
più strumenti.
La quarta opzione è quella che rende unico il
programma perchè consente di salvare la mu-
sica trovata in memoria come un programma
eseguibile direttamente da Cli, in quanto i dati
riguardanti sia la musica che gli strumenti ven-
gono salvati insieme ad una routine
di replay.
Purtroppo la routine ha tre nei. Il
primo, al quale non possiamo porre
rimedio facilmente, consiste nel fat- +
to che non si può far eseguire il file
ottenuto direttamente da Wor-
kBench poiché alla routine di replay
manca quella parte di codice che
chiede il permesso al WorkBench di ^
partire. r 1 ^
Il suo autore ha però affermato
che rimedierà all’inconveniente in |b. &
una prossima versione dell’utility. Al ^
secondo neo, invece (ammesso
che voi lo considerate tale), possia-
mo porre rimedio molto facilmente.
La routine smette di eseguire la musica quan-
do viene premuto il pulsante sinistro del mouse;
il che va benissimo in nostri programmi (purché
teniamo conto di tale particolare); se, però,
volete inserire una musica (ricordiamo che la
routine di replay gira in interrupt) in un program-
ma che fa anch’esso uso del pulsante sinistro
del mouse, la cosa seccherebbe un pò, per ovvi
motivi.
Cambiando, però, un byte nel programma
eseguibile, si potrà interrompere l’esecuzione
tramite, ad esempio, la pressione del pulsante
fire della porta 2. Ad ecceziode di alcuni giochi
(e neanche poi tutti) sono ben pochi i programmi
che fanno uso del pulsante di fuoco della porta
due!
Per chi stesse meditando sull’opportunità di
inserire una colonna sonora di propria compo-
sizione in un videogame commerciale, ricordia-
mo che, anche se la routine di replay gira in
interrupt, è sufficiente che sia disabilitato l’inter-
rupt di livello 6 (quello che viene dalla CIA) e la
nostra musica non suonerà affatto.
Una caratteristica interessante della routine
di replay utilizzata, è che essa ha una pelle
molto dura perchè gira a suon di interrupt di
livello 6, il quale non viene soppresso, al con-
trario di quello che accade con Pinterrupt di
f®aT|
£**501
livello 3 (generato all’inizio di ogni Vertical-
Blank, per chi se ne fosse dimenticato).
Successivamente sveleremo i segreti di alta
chirurgia necessari per eseguire l’operazione
sul file eseguibile.
Passiamo ora al menu OPTIONS che con-
sente di effettuare 5 scelte:
I ) Change Names : consente di cambiare il
nome della musica e degli strumenti da essa
utilizzati.
2) Play Sampie : consente di suonare uno
strumento
3) Filter Ori /Off : attiva o disattiva il filtro passa
alto. Ricordiamo che l’Amiga 1000, e alcune
serie di Amiga 2000 e Amiga 500, non dispon-
gono della possibilità di comandare via software
l’attivazione o la disattivazione di tale filtro.
4) Play Ori / Off: consente di suonare l’even-
tuale modulo trovato in memoria. Quando la
musica viene eseguita, viene attivato in basso
un equalizzatore a suon di Copper che monito-
rizza i 4 canali audio. Ovviamente, se non è
stata trovato alcun modulo in memoria, questa
opzione non darà alcun effetto.-
5) Quit: ci sfugge il significato di tale incon-
sueta opzione...
L’opzione Help presente nel menu principale,
come è facilmente intuibile, fornisce le istruzio-
ni.
II programma analizzato, pur essendo un ot-
timo programma ha, a nostro avviso, un grosso
difetto, che colpisce specialmente gli utenti cui
è destinato, cioè quelli meno esperti, che di
solito hanno solo 51 2k oppure il vecchio Agnus
(quello che riconosce come Chip-Ram solo i
primi 512 kbytes di memoria). Indovinate qual
è? L’occupazione di memoria!
Il programmino occupa circa 30k, quantità che
può far sorridere chi dispone di 8 MegaByte di
memoria. C’è da tener presente, tuttavia, che il
programma possiede anche un 'interfaccia gra-
fica la quale, vi assicuriamo, va tutta in chip-ram
e non, purtroppo, negli altri 7 e passa mega,
magari liberi.
Vi è quindi il rischio concreto che l’interfaccia
grafica del programma si sovrapponga ai dati
della musica.
La situazione peggiora se si hanno solo 51 2k
perchè, oltre al pericolo precedente, anche il
Ripper si potrà sovrapporre ai dati.
ALTA CHIRURGIA
Prima di descrivere l’operazione vera e pro-
pria, documentiamoci come farebbe ogni bravo
chirurgo.
Disassemblando un modulo eseguibile pro-
dotto da Ripper (di cui se ne può vedere uno
stralcio in figura 1 ) si vede che vi è l’istruzione...
btst #6, $bfe001
...la quale, lo diciamo per l’ennesima volta,
non fa altro che testare lo stato del pulsante tire
della porta joystick n. 1 il quale corrisponde,
appunto, al pulsante sinistro del mouse.
Tutti sappiamo che il bit 7 del medesimo
indirizzo corrisponde al pulsante fire della porta
joy n. 2. Basterà sostituire 6 con 7 e la replay
Non ci
stancheremo
mai di
ripetere che
è
indispensabile
eseguire i
vari
esperimenti
su dischi -
copia
procedura
descritta
può
sembrare
complessa,
ma basta
seguire le
istruzioni
A ivV'uu .. .
peravere
soddisfacenti
routine cesserà di suonare la musica solo quan-
do verrà premuto il pulsante tire della porta 2.
Per eseguire l'operazione ci serve un moni-
tor, anche se l’optimum sarebbe un assembla-
tore con funzioni di monitor e dubugger (il Seka
va benessimo). Prima di iniziare l’operazione
trascrivete, a parte, la lunghezza (in bytes) esat-
ta del paziente, cioè del file cui fare l’intervento.
1 ) Caricate il Seka
2) Scrivete RI. Alla richiesta FileNameòaìe il
nome del file esegubile cui volete fare l’opera-
zione.
3) Alla richiesta Begin, scrivete $20000. Nota:
potete scegliere anche un’altra locazione a par-
tire dalla quale far caricare il file, ma state attenti
a quello che fate perchè è catti-
va educazione trasferire 60 /
1 00 kbytes da disco in ram sen-
za avvertire Mr Exec\ Per sba-
glio potreste caricare il vostro
blocco di dati (abbastanza cic-
ciottello) in un posto non molto
indicato: per esempio proprio
dove è stato caricato il Seka o il
monitor che state utilizzando.
In genere, disponendo di 1,5
Mega di ram, la zona di memoria
tra $20000 e $70000 è libera,
ma se volete fare un lavoro da
persone bene educate, vi consi-
gliamo di chiedere a Mr. Exec un
blocco di memoria delle dimen-
sioni dell’eseguibile che volete caricare. Se vi è
memoria libera Exec darà l’indirizzo del blocco
e voi, da scolari diligenti, lo annoterete da qual-
che parte per poi caricarvi il blocco dati.
Chi non conosce l’assembler del 68000 deve
limitarsi a digitare il programmino di queste
pagine (scritto in assembler, ovviamente), as-
semblarlo e mandarlo in esecuzione.
Una volta eseguito il programma (a meno che
non abbiate commesso errori) avrete in D3 un
valore.
Se questo è $00000000 vuol dire che non c’è
memoria libera a disposizione: comprate quindi
un’espansione, oppure (nell’ordine) vi buttate
dalla finestra o restituite la memoria utilizzata a
Exec.
Se, invece, il valore è diverso da $00000000,
allora caricate a partite da tale valore il blocco
di dati.
Nel listato, al posto di Francy, digitate la lun-
ghezza (in Bytes) del blocco dati che volete
caricare. Come i più avranno capito, il program-
mino non può essere di alcun aiuto se non lo
facciamo eseguire utilizzando un debugger: il
risultato viene fornito in un registro. Tuttavia
visto che siamo bravi, abbiamo pensato anche
a quei poveretti che possiedono sólo un assem-
blatore (o che non lo possiedono e si sono
assemblati il codice a mano); AskMemCli (co-
me dice il nome) può essere ese-
guito anche da CLI poiché scrive
nella finestra corrente il risultato.
Ignorate la richiesta successi-
va, semplicemente tramite la
pressione del tasto return.
4) Adesso andate alla locazio-
ne $20000 + $CB (o quella che
avete scelto voi + $CB).
5) Modificate 06 con 07.
6) Scrivete Wl. .
7) Alla richiesta Begin scrivete
$ 20000 , o quello che avete scelto
voi.
8) Alla richiesta End scrivete
$20000 + (lunghezza -1), dove
lunghezza è la lunghezza del pa-
ziente.
9) Uscite dal Seka e provate a vedere se il
programma funziona.
COMPATIBILITA*
Come abbiamo detto prima la routine funzio-
na a suon di interrupt di livello 6, cioè quello che
viene generato da uno dei 2 CIA, il quale ha una
priorità più elevata rispetto a quello generato ad
ogni vertical-blank che ha priorità 3.
Tuttavia l’accorgimento non dona di certo la
vita eterna alla routine di replay, in particolar
;Ask.mem
;Sinstassi Seka
AllocMem = -198
ExecBase == $4
Move.l Execbase,a6
Move.l #Francy,d0
Move.l #0, di
Jsr AllocMem(A6)
Move.l dO, d3
Rts
Il miniprogramma in sintassi Seka
modo è sempre meglio evitare che questa giri
quando l’Amiga è molto indaffarata, poiché si
potrebbero causare serii problemi di sincroniz-
zazione (e Guru conseguenti).
Evitate, poi, di far funzionare la routine men-
tre sta lavorando un interprete o un compilatore;
se proprio volete inserire la musica nei vostri
giochi scritti in basic allora, tramite compilatore
apposito, compilateli, dal momento che si do-
vrebbe avere una convivenza abbastanza pa-
cifica. Ricordiamo infine che, a causa della
struttura della replay routine utilizzata, vi è una
serie di istruzioni eseguite fuori dal ciclo di
interrupt. Queste ci constringono, nel caso vo-
gliamo la musica contemporaneamente a un
altro programma, a far eseguire il brano tramite
il comando Cli: Run.
Esempio: supponiamo che il file musica.ga-
me sia l'eseguibile prodotto dal ripper e che
Gioco sia l’eseguibile prodotto da un compilato-
re (basic, c, modula, o quel che vi pare).
Nella startup-sequence dovrete inserire...
Run musìca.game Gioco
E’ da notare che chi ha solo 51 2 kbytes avrà
serii problemi, derivanti da due fattori. Con 512
kbytes non è molto consigliabile spendere 100
kbytes per una sola musica! Inoltre (e qui si
dovrebbe strappare a morsi le orecchie del
creatore della routine di replay), quest’ultima
trasferisce forzamente tutti i dati della musica a
partire da $30000; vi lasciamo immaginare che
cosa può succedere se a $30000 c’era qualco-
s'altro, per esempio un programma o i suoi dati.
Potevano certo fare a meno di realizzare una
procedura del genere in un programma destina-
to ad un pubblico formato, per lo più, da utenti
poco esperti; quelli più esperti, infatti, non usa-
no questo ripper, per altro limitato.
ASKMEMCLI
Il programma (più lungo) presente in queste
pagine ( Askmemcli , appunto) non fa altro che
chiedere a Exec un blocco di memoria tramite
AllocMem; succesivamente converte l’indirizzo
di tale blocco in codici Ascii tramite un algoritmo
di conversione (che non è il massimo dell’effi-
cenza, però funziona) e infine fornisce nella
finestra corrente (Cli) tale indirizzo.
Va detto che se il programma, per qualche
motivo, non riesce ad aprire la dos.library, non
verrà stampato niente; inoltre, dato che il pro-
gramma ovviamente non restituisce la memoria
presa (se no, che scopo avrebbe?) evitate di
farlo girare più di una volta di seguito, altrimenti
vi renderete conto che anche 2 mega di ram
sono pochini...
La
disponibilità
di grandi
quantità di
memoria
Ram può
facilitare lo
svolgimento
delle
operazioni
*>tVvV
Re^dy.gehhe . Shìmo sfeh
Orò tacca a noi mostrare quahta
IVfìL (•••); ••• ehm, quanta valiamo!
Commodore Computer Club - 71
i
ASKHEMCLI
DONATO DB LUCA
EXECBASE = $4
ALLOCNEH = -198
OPENLIBRARY = -552
CLOSBLIBRARY = -414
FRBBMEM = -210
OUTPUT = -60
WRITB = -48
INIZO:
nove.l EXECBASE, a6 ;Execbase a6
nove.l #1000, dO ;Quanti bytes?
;Mettete la lunghezza del f ilei il!!!
nove.l #0,dl ; D i che tipo?
dar ALLOCMEM(a6) ;Li prendo,
nove.l dO, valore ;Salvo il risultato
olr.l dO ; in dO. Pulisco dO
lea stringa, al
lea valore, aO
nove? #4,d4
;Dove netto i
jcodici asci!
;Da dove prendo
;i nibble da
;converire
;Quanti bytes?
ConLOOP :
lea tab,a2
nove.b (aO),dO
lsr.b #4,d0
add.l d0,a2
nove.b (a2),(a
lea tab,a2
nove.b (aO),dO
and .b #$0f,d0
; Converto
;Tabella di conv.
; Prendo 1 byte
;Prendo il nibble
;piu' significativo
;Rioavo oodioe ASCII
l)+;Salvo codice ASCII
;Tabella di conv.
;Riprendo il byte
;Prendo il nibble
meno significativo
add.l d0,a2 ; Ricavo codice ASCII
nove.b (a2), (al)+;Salvo codice ASCII
add.l #l,aO ; Avanzo di un byte
dbra d4, CONLOOP; Per 4 byte (8 nibble)
conunica: ;Apro la DOS library,
lea dos,al ;Testo dO , se nullo
dar 0PBNLIBRARY(a6) ;vuol dire che ci sono
;tst.l dO ;probleni con l'apertura
;beq NONAPROLADOSLIBRARY;della DOS. LIBRARY
nove.l d0,a5 ;Salvo l'indirizzo in A5
dar OUTPUT(a5) ;Cerco dove spedire i dati
nove.l dO,dl ;Dove li spedisco
nove.l «stringa, d2;Da dove li prendo
noveq #8,d3 ;Quanti ne prendo
dsr WRITE(a5) ;Li spedisco(buon viaggio)
nove.l a5, al ;Chiudo la DOS. LIBRARY
dsr CLOSBLIBRARY ( a6 > ;
rte ;Torna dalla nanna , Lesale
NONAPROLADOSLIBRARY:
nove.l VALORE, al ;Se non sono riuscito ad
nove.l #1000, dO ;aprire la dos . library rido
dsr FREEMEM(A6) ;la nenoria presa ad exeo
rts ;Pussa a via , Lessi©
; Ricordatevi di dare TUTTA
; la nenoria presa! !!!!!!!!
stringa:
de . 1 0
dc.l 0
valore: JVC
do . 1 0
even
dos :
dc.b 'dos. library ' ,0
tab:
dc.b ‘0',*1','2',*3','4',*5*,*6 , ,*7','8'
dc.b '9',*a','b','o',d','e','f'
fi bordo dellè SOè lx>r
'Aerei, Il
Cdf>ir^ho Pdol Unser é
pensoso...
ftìlre ih Oh jwntfcqgio hnigll
•loTi di mio
fr A
f C» f C- I* I u») U
^ quello dei b.lòF
‘ irello A. LO.
Giudice RE GIS, come stahho
dhddhdo » miei
fc.RU.... è incredibile :U SUA
Squadri gl»A si è esibì td ih
uh difficilissimo aerali b&r&l =
• *r,co * beh 8 livelli H -
72 - Commodore Computer Club
- y -
020000 OR.B
020004 OR.B
020008 OR.B
02000C OR.B
020010 OR.B
020014 OR.B
020018 OR.B
02001C OR.B
020020 OR.B
020024 MOVE .L
02002A LEA
02002E LEA
020034 MOVE . L
020036 ADDt.L
020038 ADD.L
02003A MOVE . B
02003C CMP.L
02003E BHE
020040 BSBT
020048 JMP
02004A MOVEM.L
02004E BSR
020052 MOVEM.L
020056 RTfc
020058 BSR
02005C CLK . B
020062 MOVE.B
02008A MOVE.B
020072 MÒ^B.B
02007 A MOVE.B
020082 MOVJS . L
02008C MOVE . L
020096 MÓVfc.L
02009C MOyB.L
0200A2 CM?r.L
0200A8 BEQ
0200AC BRA
0200B0 BSR
0200B4 MOVE . L
0200BE RTS
0200C0 MOVEM.L
0200C4 BSR
0200C8 BTST
0200D0 BNE
0200D4 BSR
0200D8 MOVE.B
0200DB MOVEM.L
0200E2 MOVE . W
#$03F3 ,D0 Ari \ I
#$0000, DO f VU 1 /
#$0002, DO I I /
#$0000, DO V o . //
#$0001, DO
#$44A3 , DO
#$0001, DO
#$03E9,D0
#$44 A3, DO
#$00011266, DO
$02004A(PC),A2
$030000. L,AO
AO, Al
DO, Al
DO, A2
-(A2),-(A1)
AO, Al
$02003A
#$0001 , $BFB001 . L
(AO)
DO/D 1/D2/D3/D4/D5/D8/D7/A0/A1/A2/A3/À4/A5/A6 , -( A7 )
$020058
( A7 )+ , DO/D 1/D2/D3/D4/D5/D6/D7/A0/A1/A2/A3/A4/A5/A6
$0200F0 *
$BFDEOO . L
#$0082 , $BFD400 . L
#$0037 , $BFD500 . L
#$008 1 , $BFDDOO . L
#$0011 , $BFDEOO . L
$000078. L,$0300A2.L
#$00030076, $000078. L
$0300A2.L,A0
$000078. L, Al
$000078 .L,AO
$0200B0
$020096
$0201AE
$0300A2.L, $000078. L
D0/D1/D2/D3/D4/D5/D6/D7/A0/A1/A2/A3/A4/A5/A6, -(A7 )
$020100
#$0008 1 $BFEOO 1 . L
$020008
$0200B0
$BFDDOO.L,DO
<A7)+,D0/D1/D2/D3/D4/D5/D6/D7/A0/A1/A2/À3/A4/A5/A6
#$2000 , $DFF09C . L
■ili * -vr
■ • ■' * :
'T v r „.r
Wv;
■ . x-*ì
• '
ixx
Commodore Computer Club - 73
La gestione
degli spri te,
con Amiga,
richiede la
loro
presenza
sul dischetto
OBJECT A BORDO!
Un datamaker su misura per rendere più comodo e trasportabile
l’uso di Bob e Sprite. nel favoloso Amiga
di Domenico Pavone
T ra tutti i comandi implementati da AmigaBa-
sic, il raggruppamento più consistente è
quello riservato alla manipolazione dei cosid-
detti "oggetti mobili”, più comunemente intesi
come Sprite e Bob.
Tale abbondanza, pur risentendo dei limiti
qualitativi dell’interprete basic adottato dalla
Commodore, di fatto consente una notevole
facilità nel gestire le potenzialità grafiche di
Amiga.
Lo scorrere sullo schermo di navicelle spazia-
li, proiettili perforanti e artiglieria varia, un tempo
dominio esclusivo di programmatori provetti, è
ora alla portata di tutti: qualche istruzione Ob-
ject., associata alla funzione Collision , ed il
gioco (anzi, il Game) è fatto.
Non siamo però qui per approfondire gli
aspetti teorici del problema, quanto per supplire
ad una delle caratteristiche meno comode as-
sociate alla manipolazione di Sprite e Bob.
Scorrendo il manuale, infatti, si apprende con
una certa soddisfazione che Amiga, o meglio
AmigaBasic, non fa distinzione tra Bob e Sprite,
quanto meno per ciò che riguarda la loro mani-
polazione.
La sola istruzione...
Usr! Ottimo, Primo ...
Attento è ho h streme, :
Sài cKe il registro di p
Controllo teq. - ygfljl
9»o è Catto dà
Soli byte soli
incrociàiotreJ^^^Uil),
AÉ6IS...
Non si [3reocco|>i , Signore \ Quindi, sarei in grado di inter
conosco molto bene là maty>a \ \ v ^> r ® so) CflRRy del suo r~ t
di memori a dell 1 ftEGIS ... \regisfro - punteggio ...!
t Lt
74 - Commodore Computer Club
f*
QUALCHE NOTA SUI LISTATI
T anto il Datamaker che il Demo sono re-
datti in un basic che non richiede alcun
approfondimento, se non la semplice con-
sultazione del manuale per le istruzioni che
eventualmente non si conoscono, e un'oc-
chiata ai commenti annessi ai listati. Non
viene adoperata alcuna libreria di sistema,
proprio per favorire i meno esperti, che pos-
sono così cimentarsi nelle modifiche più sva-
riate.
Del programma Datamaker vero e proprio,
potrebbe essere migliorata la cosiddetta "in-
terfaccia utente”, ovvero semplificato e reso
di maggiore impatto grafico l’input iniziale.
Ne conseguirebbe un inevitabile incre-
mento delle dimensioni del listato, ma, a
parte la maggiore comodità, costituirebbe un
ottimo esercizio di programmazione. Per chi
non ha voglia di pestare troppo sui tasti, la
routine funziona egregiamente anche così
com’è.
Si ricordi solo che, nei listati che dovranno
gestire l’oggetto mobile, vanno sempre inse-
rite le istruzioni di caricamento dei dati come
nelle due righe del listato 3 delimitate dal
commento " legge dati creati col D maker”.
Object.Shape x, nome$
... renderà^disponibile l’oggetto Nome$, cui
viene assegnato il numero x, tanto che si tratti
di uno Sprite quanto di un Bob.
Preso atto della difficoltà in meno da affron-
tare, vediamo quali problemi comporta la cosa.
Ancora sul manuale, viene riferito che alla
variabile nome$ sono associati gli attributi del-
l’oggetto: in parole povere, il disegno che lo
compone, le sue dimensioni ed i suoi colori.
Tulle queste caratteristiche vengono auto-
maticamente impostate adoperando il program-
ma ObjEdit, presente nel disco Extras (directory
BasicDemos ). In pratica: prima si disegna Pog-
Owiamente, nel ciclo For... A/exfdi lettura,
il valore andrà modificato in accordo col nu-
mero dei Data, rilevabile dalla prima riga del
file ottenuto con il Datamaker. Quest’ultima
indicazione, una volta effettuato il Merge,
può essere eliminata del tutto (è solo una
Rem, in fondo).
Prima di concludere, vai la pena notare
come il programma Datamaker può trasfor-
mare in Data adoperabili da basic qualunque
tipo di file, non solamente Bob e Sprite.
Potrebbe, per esempio, "processare" un
normale file eseguibile; una volta ottenuto il
file Ascii, basterebbe poi aggiungervi qualco-
sa come...
Open " nomatile " For Output As 1
For x = 1 To numerodati
Read a$: a% = Va! (a$)
PrinW 1, Chr$ (a%)
Next : dose 1: End
... per avere un classico "caricatore” basic,
che ricrea, su disco, il file eseguibile. Unica
accortezza, considerato l’algoritmo del Data-
maker, il file da trattare non deve superare i
32767 byte, limite di capienza per la stringa
(nel listato 1 : oggetto$) che "ingloba" il file
prima di trasformarlo in dati Ascii.
getto con PObjEdit (o qualche Sprite Maker del
pubblico dominio), poi lo si salva su disco ed
infine, nel nostro programmino basic, va inserito
un comando tipo...
Object.Shape 1, lnput$ (Loffi), 1)
... dopo aver adeguatamente aperto il relativo
file (con Open "nomeoggetto" For Input As 1 ).
E fin qui, tranne le solite "traversie" per chi è
alle prime armi, nulla di complicato.
Il programma basic che manipola l’oggetto,
però, presenta l’inconveniente di dover essere
sempre associato al file contenente i dati dello
Sprite/Bob. Il che, volendo trasportare la routine
su un altro dischetto, si traduce nella necessità
Una
procedura
che ricorda
da vicino la
tecnica
usata con il
C/64 per il
disegno
degli sprite
Finalmente!) do^o ^ d«
alta òcrobàìià *.•
Cèderò iàmo cjoasi
pimfb : orici manca solo...
...là cilieqinà Sul diagramma
ò lorfa ! ns^etUte che do >
^ — — v alcune POKB ... S
Leffefro è slu^eCàcehle !
£ \ VÉrAVO, (Vi m ol^
\Hai ottenuto l’ihVersioneX^.
\della bhorifc SPRITE -FONDO !
Commodore Computer Club - 75
Sprite e bob
sono due
"oggetti"
grafici simili
tra loro solo
in apparenza
di prestare particolare attenzione al Path (per-
corso) del file, pena la solita sfilza di "object not
found".
TUTTO COMPRESO
Supponete, per esempio, di voler inviare un
programma che manipola decine di sprite ad
una rivista scelta a caso: CCC.
Il programma sarebbe facilmente testabile
adoperando il dischetto che lo contiene, ma il
suo listato non potrebbe mai e ssere pubblicato:
senza i files che contengono gli sprite,, non
servirebbe proprio a niente.
Una soluzione radicale a tutti questi pro-
blemi, consiste nell’ inserire I dati relativi agli
oggetti nell’ambito del listato stesso, sotto
forma di istruzioni Data.
D’altra parte, un Bob di dimensioni non micro-
scopiche, magari composto da svariati bitpla-
nes. può raggiungere facilmente unadimesione
di migliaia di singoli dati. Improponibile, dunque,
comporre da sè l'immagine, ammesso che si
riesca a trovare il bandolo della matassa con-
sultando il Rom Kernel Manual, non proprio
semplice per chi è alle prime armi.
Ma, ed eccoci al dunque, è sempre possi-
bile ricorrere all’ObjEdlt per creare l’ogget-
to, salvarlo su disco, e solo successivamen-
te trasformare In Data II file In questione.
DA FILE A FILE
Dopo aver attivato Amigabasic, si copi il lista-
to, e lo si salvi debitamente su disco. Il program-
ma è molto semplice da usare, e, entro certi
limiti, rende il più facile possibile la vita a chi non
si considera un esperto. Per verificarne e ca-
pirne in pratica il funzionamento, che come
ovvio richiede la presenza di un oggetto già
preesistente, sfrutteremo il file Ball, inserito nel-
la directory Basicdemos del disco Exfrasfornito
assieme al computer. Dopo il Run appare un
primo input, che richiede il nome del disco e
della eventuale directory ove ricercare il file da
trattare. E’ importante, nel fornire questo dato,
attenersi alle comuni regole del Dos, inserendo
debitamente il simbolo due punti(:) dopo il nome
del disco o della periferica e, in presènza di una
(o più) subdirectory, concludendo l’Input con il
simbolo di barra inclinata(/).
Nel nostro caso, ad esempio, bisognerà digi-
tare... •9Q-
Extras 1.3: BasicDemos/ Off»
... e Return pet specificare il disco o la direc-
tory voluta.
Omettendo la risposta, verrà considerata la
directory corrente, eventualmente modificata
direttamente con il comando basic Chdir.
Chi possiede due drive, può ovviamente ado-
perare le comuni specifiche Dfl $ ! *DfO:, Ram:,
eccetera. Viene poi richiesto il nome del file: per
questa prima verifica, rispondiamo Ball.
Una ulteriore scelta riguarda il numero di dati
che costituiranno ogni riga Data, valida più che
altro a fini estetici, che è stata limitata tra 5 e 1 5,
valori ottimali anche per differenti risoluzioni di
schermo. Se si adopera la media risoluzione,
1 0 andrà più che bene. Infine occórre precisare
dove dirigere l'output, con le stesse regole del
Dos viste in precedenza. Anche qùi il parametro
può essere omesso, nel qual caso^verrà assun-
ta la directory corrente. n <:
Si scelga il nome del disco (o della periferica)
desiderato, che per il nostro primo esperimento
potrebbe anche essere Ram: (e Return).
A questo punto, i dati immessi vengono mo-
strati sullo schermo, per verificare la presenza
di eventuali errori. Prima di rispondere con S
(sì) oppure N (no), si controlli attentamente il
nome dei file di Input e Output, che devono
comprendere l’intero percorso.
Il nome del file di Input, se si è seguito quanto
finora descritto, dovrà risultare esattamente...
Extras 1.3 : BasicDemos/Ball t' -
* uj » « ,
...mentre quello di output assumerà il nome
Ram: Ball. data
Il suffisso ".data" viene automaticamente ag-
giunto dal programma al nome del file origine.
Se tutto è in regola (in caso contrario basterà
reimmettere correttamente tutti i dati) e si è
Il giudice fìEOIS esclamò
Incredule ! Mài Viste niente d»
Simile ... lotto ciò e j — * ^
Resh>ri2èànte !!!
...e con questo, il fràine è Over...
Efffcfrìvàmenhe/il tome è Over.
Primo Grìovedini e là suà squadra
hanno vinto l\m|x>rtehte cornee*
h fciohe, (j^r là gìoi&jloro e del
capitano C.P.U.. Il rivale ft.L.U.j
invece, t>Do solo sperare in una
rivincite Estere . avendo quàl -
curo risponderà l^'tellà
riteàle domàndà RGR1N ?**...
76 - Commodore Computer Club
: BOB O SPRITE?
I l capitolo 7 del manuale del basic, illustra a
grandi linee l’argomento objects , spiegan-
do (succintamente) le differenze esistenti tra
Sprite e Bob. Ma quando realmente convie-
ne adoperare uno piuttosto che l’altro?
Il primo elemento che può determinare la
scelta,* è certo dovuto alle dimensioni possi-
bili dell’oggetto. Adoperando uno sprite, co-
me noto, non si possono superare i sedici
pixel in orizzontale, il che limita alquanto le
reali possibilità di questo tipo di oggetto.
I sedici pixel, si badi, sono da intendersi
delle stesse dimensioni rilevabili su uno
schermo 640 x 200 (il classico modo "80
colonne”), anche se si sta usando una riso-
luzione minore (320 x 200).
Per tale motivo gli Sprite vengono usati per
lo più come puntatori (la freccetta del mouse
è proprio uno sprite), o proiettili vaganti in
games d’azione, grazie anche alla loro totale
indipendenza dallo schermo sottostante.
Indipendenza dovuta alla presenza, tra i
circuiti di Amiga, di un hardware espressa-
mente dedicato alla loro gestione (il chip
Daphne), motivo della maggiore velocità di
movimento rispetto ai cosiddetti Bob.
Questi ultimi, però, sono in effetti gli oggetti
più utilizzati, vuoi per le maggiori dimensioni
premuto il tasto N, la routine comincerà a svol-
gere il suo compito.
Eventuali inserimenti di dischetto verranno
segnalati direttamente dal sistema: basterà, in
questo caso, obbedire ed attendere qualche
secondo, senza la necessità di clickare nel re-
quester. Il frutto di tante fatiche (?) sarà un file
Ascii di nome Bali.data presente, se così si è
scelto, nella Ram Disk.
Per verificarlo, si può semplicemente caricar-
lo tramite l’editor del basic, oppure, dopo aver
aperto una finestra Shell, impartendo:
possibili, che per il maggior numero di colori
implementabili, negli sprite limitati a soli 3.
La loro gestione è affidata, in Amiga, al
cosiddetto Blitter ( Bob sta per Blitter OBject)
che, durante l’animazione, provvede a ridi-
segnare l'oggetto nella nuova posizione e
ripristinare il contenuto dello schermo sotto-
stante. Per tale motivo, nonostante la capa-
cità del Blitter di trasferire un milione di pixel
per secondo, la velocità risulta inferiore a
quella degli sprite. I Bob, in pratica, fanno
parte dello schermo, nel senso che ne utiliz-
zano lo stesso "background", anche se non
in modo evidente.
I due tipi di oggetti, sono dotati delle stesse
capacità di collisione, e relativa rilevazione,
il che, in AmigaBasic, è collegato alla funzio-
ne Collision , ma con una grave lacuna: non
esiste una rilevazione della collisione tra un
oggetto ed un elemento dello schermo sot-
tostante.
Sempre in ambiente AmigaBasic, c’è an-
che da notare una certa discontinuità nel
movimento degli oggetti quando li si anima,
dovuto all'uso da parte dell'Interprete di suoi
particolari interrupt, più "lenti" di quelli super-
veloci di Amiga.
Bob o Sprite, dunque? La risposta più
corretta, è forse la più ovvia: dipende...
Type Ram : Bali.data.
In entrambi i casi, se tutto ha funzionato a
dovere, il file dovrebbe risultare come mostrato
dal listato 2 di queste pagine. Si noti come, in
testa al file, sia presente una riga di commento
contenente l'indicazione del numero totale di
dati; informazione, questa, basilare per una cor-
retta assunzione degli stessi in una stringa che
specifichi l’oggetto.
I singoli valori Data, inoltre, devono risultare
ben allineati e disposti ognuno su tre colonne
(anche l’occhio vuole la sua parte).
Nel
dischetto
Extras di
Amiga sono
presenti
alcuni files
utili per far
funzionare
la procedura
di queste
pagine
Mi ricordo die ora potrete. Assiste
lre ( in bàSSA risoluzione irono color J
V e se nza sonoro di sottofondo,.^/
.èli' incredibile “CORSO SU
COME SI ACCENDONO I C0M
PUTER * del kof . H.SKèrsus” !
^rfire il Boot...
Commodore Computer Club - 77
Un
minigioco
consente di
verificare la
corretta
gestione
dell’oggetto
grafico
toOD.
kJAyy
Il file Ball, come specificato in più punti del
manuale, definisce un oggetto a forma di palli-
na. Ora, con il nostro Ball. data, è possibile
ragruppare in un unico listato tanto un program-
ma che necessita di un Bob- pallina, che i dati
della pallina stessa.
Ovviamente, una tantum, sarà necessario
operare un Merge.
Vediamo un esempio su come procedere,
sfruttando il Demo proposto dal terzo listato.
FUSIONE CALDA
Si imparisca New al basic, quindi si copi il
listato 3 e lo si salvi su disco a scanso di
eventuali Guru. Con il programma ancora pre-
sente nella finestra List, si digiti nella finestra di
output...
Merge "Ram: ball.data N
... se si era scelta la Ram Disk per contenere
il file Ascii prodotto dal nostro Data Maker (in
caso contrario, l'istruzione sarà:
Merge "Nomedisco: ball. data"
Il programma Demo è ora completo.
Lo si salvi su disco nella sua veste definitiva,
e finalmente lo si lanci: la nostra pallina, i cui
dati vengono prelevati dalle righe Data, entrerà
subito in azione.
Il programma, dato il suo scopo puramente
dimostrativo, è piuttosto semplice: basta far
rimbalzare la palla tramite una Yapphetta" il cui
movimento è gestito dal mouse.* : 1
Ogni 5 "palleggi", la difficoltà viene incremen-
tata diminuendo la distanza della 1 racchetta dal
bordo superiore. Se si fallisce il colpo, il minigio-
co termina mostrando quanti palleggi sono stati
effettuati. Per evitarvi la digitazione di lunghe
serie di Data, l’oggetto Racchetta è ottenuto in
maniera molto grossolana ma, ora che dispone-
te di un Data Maker, risulterà semplice dise-
gnarsene una di tutto rispetto, e, con opportune
migliorie, il programma potrà assumere una
vera dignità di Game, anche se,; come ovvio,
con il solo Basic non si possono certo raggiun-
gere i livelli di un Arkanoid.
Non si dimentichi, comunque, che sul numero
72 della nostra rivista .è stato ; pubblicato un
programma che trasforma un Brùsh di Deluxe
Paint (e similari) in un oggetto gestibile da Ami-
gaBasic. Inutile dire che anche;? i file prodotti
da quel programma possono essere trasformati
in Data dal Datamaker di queste pagine, con i
risultati che si possono immaginare...
Doto tJto ; il coghofee SKòrsus
rispecchi òhcheiiò soè
cifà di disegno
78 - Commodore Computer Club
LISTATO' 1
Trasforma un Bob o uno Sprite creati con l'Object Editor
Co programmi similari) in un file Ascii di righe Data
' CARICA OGGETTO E PREPARA OUTPUT SU NUOVO FILE ~s—
WINDOW 2 f ' Bob & Sprite Datamaker M , ( 30 . 70) - ( 580, 1 15 ) , J.8
1 abe 11: |
CLS :PRINJ‘ : PRINT : INPUT" VOLUME/DIRECTORY DI INPUT” ; fi lei $
1 abe 12: \
CLS : PRINT : PRINT: INPUT "NOME DEL FILE” ; f i 1 e2$
Ir f i le2 THEN GOTO label2
filel$*fi J lel$ + file2$
labe 13 : 1
CLS : PRINT : PRINT : PRINT SPC( 18 ) "DATI PER LINEA (5-15)";
INPUT dpi : IF dpi < 5 OR dpi >15 THEN GOTO labei3
CLS : PRINT: PRINT: INPUT'VOLUME/DIRECTORY DI OUTPUT” ; fi le3$
f ì le3$-f i Ie3$+f i le2$+" .data : CLS : PRINT" INPUT FILE •;
COLOR 3, 2: PRINT SPC ( 4 ) ; f i 1 el S : COLOR 1,0
PRINT "DATI PER LINEA V;: COLOR 3,2:PRINT dpl:COLOR 1,0
PRINT-OUTPUT FILE ”;:COLOR 3,2:PRINT SPC(3)file3$
COLOR 1,0: PRINT: PRINT SPC ( 24 ) "CORREZIONI (S/N)?";
correz :
a$ * 1NKEY $ : aS = UCASE$ ( a$ )
IF a$< >"S” AND a$< >"N ’ THEN correz •
IF a$ = "S".'THEN CLEAR : GOTO labell
CLS: PRINT SPRINT :PRINT SPC{ 29) "ATTENDI ... ”
OPEN filel$ FOR INPUT AS 1 :oggetto$=INPUT$(LOF( 1 ) , 1 >
CLOSE- 1 : totdat i*LEN ( oggetto$ ) : OPEN file3$ FOR OUTPUT AS 1
PRINT# 1,$$! * NUMERO DATI = totdati
* INVIA DATA DELL'OGGETTO AL FILE
numi inee=lNT( totdati /dpi ) :ultimo=dpl-l
FOR 1 inee=l TO numlinee*dpl STEP dpi :PRINT# 1 , "DATA
FOR dati*0 TO ultimo
a=ASC(MID$ (oggetto$ , 1 inee+dati , 1 ) ) :GOSUB store
NEXT dati
NEXT linee;..
' — ULTIMA LINEA DATA
IF numi ine!é* > totdati /dpi THEN
ultimo*totdati-numl inee'dpl :PRINT# l . "DATA " ;
FOR dati^ TO ultimo
a=ASC (MID$(oggetto$ , ( totdat i -ultimo }+dati , 1 ) ) :GOSUB store
NEXT dati ^
END IF - X i X
' * 3r FINE OPERAZIONI
CLOSE 1 : CLS; PRINT : PRINT SPC ( 27 ) TUTTO Ok!":PRINT
PRINT SPC( 10) "Aspetta che il drive si fermi
PRINT e premi un tasto"
loop:
a$=INKEY$ : IF a$ = "" THEN GOTO loop
WINDOW CLOSE. 2 : END
’ SUBRÒU.TINE MODIFICA ESTETICA E SCRITTURA DATI
store: JV
a$-STR$ (é)
IF a< 10 THEN PRINT# l.,CHR$(48);
IF a< 100 THEN PRINT# l.CHR$(4Q);
PRINT# 1 RIGHT$ ( aS , LEN(a$)-l);
IF dati=ul timo THEN PRINT# 1,"" ELSE PRINT# 1 ;
RETURN
Ih è chiedevi
Ecco è voi A frrof-Skòrsos
...soho ih
cosà fané se SI BRUCIO IL
FUSIBILE DEL COMPUTER ...
Commodore Comput^Club - 79
■x\: h. K v
* NUMERO DATI =106
DATA 000 . 000 . 000 , 000 . 000 . 000 , 000 . 000 , OO0 . 000 , 000 , 002
DATA 000 . 000 . 000 . 021 , 000 , 000 , 000 , 010 , 000 . 024 , 000 , 002
DATA 000 . 000 . 000 . 000 , 000 , 000 , 000 , 000 , 000 . 000 , 002 , 242
DATA 000,000,015, 254, 000, 000 ,03i, 255 . 000,000,015. 254
DATA 000 . 000 , 003 , 248 . 000 , 000 , 000 , 000 , 000 , 000 , 000 , OOU
DATA 000,000,000.000,000.000,003,254,000,000.015,255 ‘
DATA U6, 000, 063, 255,224,000. 127,255,240.000. 127,255
DATA 240,000. 127 , 255 , 240, 000 , 063 , 255 , 224.000,015, 255
DATA 12Ó ; 000 . 003 , 254 , 000 , 000 , 000 , 000 , 000 , 000 '
1 DEMO DA LANCIARE SOLO DOPO AVER EFFETTUATO
' IL MERGE CON IL FILE "ball. data" CREATO
■l CON IL DATAMAKER (listato 1)
'sasBissssasssissasssssBSSsissssxstssessssaKasss
SCREEN 2,640.220,2,2
WINDOW 2. , i 0 . 0 )- ( 630 , 150 ) ,0. 2
ON BREAK GOSUB fi ne: BREAK ON
. LEGGE DATI CREATI COL DMAKER
FOR x=l TO 106 : READ a : pai la$=pai la$+CHR$ la ) :N£XT
OBJECT . SHAPR 1 , pa 1 la$ assegna pallina a Bod 1
• CREA BOB "RACCHETTA"
bar $=MKL$ ( 0 ) +MKL$ ( 0 ) +MKL$ { 2 ) +M*.L$ i 24 .1 +M^L$ i 4 )
bar$=bar$+MKI$ ( 24 ) +MKI $ ( 3 ) +MKI $ (.0 )
FOR x=l TO 32 : bar $ =bar $+CHR$ ^ 255 ; : NEXT : v=I30
OBJECT.SHAPE 2 , bar $ : OBJECT . X 2 . 270 : OBJECT . Y 2,v
• __________ ___________________________________
OBJECT. VX 1 , 80: OBJECT. VY 1 , 70 : 'velocita • palla
OBJECT. ON : OBJECT. START: 'attiva gli oggetti
' CONTROLLO COLLISIONI
detect:
m=MOUSE(0) : OBJECT. X 2 . MOUSE( 1 ) : id=COLLISION ( 0 )
IF id=0 THEN detect
ob j =COLLI S ION ( id ) : vve=OBJECT . VY ( 1 ) : vor=OBJECT . VX ( 1 )
IF ob j=-3 THEN PRINT "COLPO FALLITO ! " : GOTO fine
IF ( obj=-2 AND vor<0 ) OR (obj=-4 AND vor>0) THEN
OBJECT. VX 1,-vor
END IF
IF ( obj=-l . AND vve <0) OR (obj=2- AND vve>0) .THEN.
OBJECT. VY 1 , -vve : count=count+l :tot=tot+l
IF count=10 AND v> 30 THEN
v=v-20 : OBJECT. Y 2,v:count=0
END IF
END IF
OBJECT. START: GOTO detect
' DISATTIVA TUTTO PRIMA DI CONCLUDERE —
fine :
PRINT : PRI NT "PALLEGGI EFFETTUATI = " ; INT( tot/2 )
PRINT : PRINT :PRINi "premi un tasto"
loop:
a$=INKEY$ : IF a$=*" THEN loop
OBJECT. OFF: WINDOW CLOSE 2 : SCREEN CLOSE 2: END
80 * Commodore Computer Club
DISEGNARE CON DIGIPAINT III
Non tutti gli utenti di Amiga sono in grado di usare i potenti strumenti offerti dai
numerosi pacchetti grafici in circolazione; ecco le risposte ai dubbi più frequenti di
chi disegna abitualmente con Digipaint 3
A cura di Luigi Callegari
COME SI CREA UNA SAGOMA
D I TR ACCIATURA
P er creare una Custom Brush si deve
selezionare l'icona di strumenti (To-
ols) se non è già visualizzata, poi si
sceglie una qualunque delle sagome ri-
portate ( triangolo , rettangolo, sfera...) e
subito dopo l’icona della forbice. Il cur-
sore assume cosi la sagoma della forbi-
ce stessa e piandolo sullo schermo si
può "ritagliare" una porzione di schermo
facendola diventare la sagoma di trac-
ciatura lasciata dal cursore premendo il
pulsante sinistro. Per effettuare il ritaglio
si deve delimitare l’area interessata pre-
mendo il pulsante sinistro del mouse e
muovendolo mantenendolo pigiato, poi
rilasciandolo si ritaglia la porzione.
EFFETTO TRASPARENZA
D igipaint III presentamene schermate
dimostrative sul disco, un simpatico
effetto di "trasparenza". Per realizzarlo
si clicki sul gadget Controls: si vedrà
apparire il menu omonimo in basso sullo
schermo (non si tratta di un menu a
discesa di Intuition, di quelli che compa-
iono premendo il pulsante destro del
mouse!).
All'estrema destra sono presenti i con-
trolli di trasparenza, con uno slider ver-
ticale sulla sinistra, che serve per con-
trollare il punto di trasparenza. Vediamo
anche un grosso quadrato bianco con
Commodore Computer Club -81
quattro pulsanti in cima, che servono per
indicare la direzione della luce rispetto
alla faccia dell’ipotetica sfera rappresen-
tata dal soggetto.
Infine, sulla destra, troviamo uno sii-
der verticale che regola la trasparenza,
come indicano anche le figure poste a
lato. Si clicki sul secondo bottone da
sinistra tra quelli posti al di sopra del
quadrato bianco (Point Hotspot). In que-
sto modo compare un quadratino bianco
sullo sfondo ombreggiato, rappresen-
tante il punto di luce per il controllo della
trasparenza, dove cioè inizia il centro
della trasparenza.
Si trascini lo slider Edge Transparen-
cy in basso per rendere trasparente lo
spigolo della sagoma, come si desidera.
Infine si sposti il puntatore nel punto
desiderato per lasciare la "brusii" attuale
in modo trasparente alla pressione del
pulsante sinistro del mouse.
EFFETTI... SFEROIDALI
U no degli effetti più stupefacenti offer-
toi dal pacchetto è certamente quel-
lo che permette di scrivere un testo qua-
lunque su di una sfera, come è anche
possibile vedere nel dimostrativo.
Digipaint III consente di usare il testo
come una brush, quindi di illuminarla,
ombreggiarla ed "appiccicarla" su figure
solide.
Innanzitutto si deve produrre, il testo
da rendere, come se fosse una sagoma
di tracciatura entrando nel menu Texte
clickando sull'apposito bottone di sele-
zione. Quindi si clicka sul gadget Stringa
e si immette il testo.
Se si desidera cambiare la fonte di
caratteri, si deve clickare sul primo bot-
tone, quello con la scritta Fonts, per
accedere alle fonti memorizzate nella
directory associata al device Fonts: (so-
litamente la directory Fonts del disco di
sistema, ovvero quello usato per avviare
il computer alla richiesta del Wor-
kbench).
Dopo avere terminato la digitazione,
premendo Return o Enter, il testo viene
reso secondo i colori ed il modo di trac-
ciatura attuale (Coiorize, Range, Nor-
ma/...,} selezionati dai menu Intuition col-
legati al menu. Per ottenere la tracciatu-
ra in grassetto , corsivo o sottolineato ,
bisogna clickare su di uno dei tre gadget
con una [A] scritta nel corrispondente
stile, posti accanto al gadget di stringa.
In seguito si deve scegliere dal menu
(pressione del pulsante destro del mou-
se) Brush la opzione Swap / Copy This
Brush.
Tale azione inserisce automat-
icamente la brush attuale, rappresenta-
ta dalla stringa di testo, in un buffer
interno ed abilita la successiva opzione
che dobbiamo usare.
Dal menu Mode si scelga TxMap, che
sta per "texture mapping". In questo mo-
do la stringa di testo viene usata come
mappa per riempire le sagome.
DIGIPAINT III
I l pacchetto Digipaint III della NewTek è attualmente,
insieme a Photon Paint II, il programma "di punta" per
quanto riguarda la grafica HAM. Scritto interamente in lin-
guaggio Assembler per garantire la massima velocità ope-
rativa, è in grado di lavorare sia in bassa risoluzione
normale (320 x 256), sia in bassa risoluzione interlacciata
(320x512).
In effetti si attende l'annunzio della commercializzazione
anche in Italia della versione che supporta il cosiddetto
modo Dynamic Hires, in grado di presentare 4096 colori in
alta risoluzione (640 linee orizzontali) usando una partico-
lare tecnica hardware e software, che cambia in pratica la
palette di colori per ogni nuova linea di scansione.
Tale sistema è già supportato dal digitalizzatore hardwa-
re Digiviewlll della Newtek, che può generare direttamente
immagini HAM in alta risoluzione partendo da telecamere
in bianco e nero od a colori.
Digipaint III consente di avere un’area di tracciatura
virtuale di 1024 x 1024 pixel, memoria Chip permettendo,
con scorrimento continuo, sebbene con i nuovi modelli di
Amiga dotati di 1 Megabyte di Chip Ram la massima
dimensione di schermo sia effettivamente di 960 x 960
pixel. Vogliamo qui illustrare alcune semplici procedure di
utilizzo delle entusiasmanti caratteristiche del pacchetto,
che speriamo servano come soluzioni a problemi pratici dei
suoi utenti, incapaci di leggere il manuale in lingua inglese
o senza voglia di introdursi in strani meandri per compren-
dere anche le nozioni basilari.
Ricordiamo, innanzitutto, che Digipaint III lavora esclusi-
vamente con files grafici in formato IFF e che per fare
comparire il menu con gadget e requester vari si deve
premere il tasto di Help.
82 - Commodore Computer Club
rente, si deve attivare il quadrante della
tavolozza cromatica, poi clickare sul
bottone nella linea inferiore riportante
Pick.
Portando il mouse su di un qualun-
que punto dello schermo, anche su di
una porzione ingrandita con l’opzione
di ingrandimento {bottone con lente da
filatelico) e clickando col pulsante sini-
stro per un istante, il colore viene letto
ed usato come colore attuale.
Viene infatti presentato anche sopra
i tre slider cromatici verticali RGB nel
quadrante.
UNIONI
L ’opzione RubThru del menu Mode
serve, essenzialmente, a unire
creativamente due immagini separate
in modo selettivo.
Si carichi, ad esempio, l’immagine
Fashion dalla directory Images dal di-
sco di Digipaint III, poi si scelga Copy
This Picture dal menu Picture/Swap per
ricopiare la schermata nel buffer interno.
Si scelga il colore bianco dalla tavo-
lozza a sedici tinte (quello orizzontale
sopra i bottoni, sempre visualizzato) e si
scega Colorize dal menu Mode: pre-
mendo il tasto [w] si renderà tutto lo
schermo in bianco e nero.
Poi si clicki sul gadget Controls per
lavorare sui controlli di trasparenza.
Si attivi il punto di fuoco puntiforme
(secondo gadget sopra il quadrato
bianco) per fare comparire la sfera ros-
sa col quadratino bianco, poi si sposti
lo slider Edge Transparency (l’ultimo
slider verticale a destra) nel punto infe-
riore della sua corsa.
Si scelga poi RubThru dal menu Mo-
mouse al di sopra di uno dei colori rosa
nei quadrati con le sfumature di colori
posti sulla destra dello schermo.
Quindi si clicki il pulsante sinistro e lo
si mantenga premuto muovendo il pun-
tatore sulle sfumature.
Una volta scelto il colore appropriato
si ritorni al quadrante di Tools, si clicki
su Fili e, poi, sulla sagoma di tracciatura
continua a mano libera (la prima a sini-
stra quando il Fili è stato selezionato e
compare verde su nero). Delimitando la
faccia della lady, e muovendo il mouse
col pulsante sinistro premuto, si riempie
di colore il disegno in modo concorde
con la scala di grigi originale.
Per avere un esempio si rientri nel
quadrante Tools, si scelga Fili e poi la
sagoma rotonda. Clickando in un punto
dello schermo per tracciare la circonfe-
renza (mantenendo premuto il tasto si-
nistro del mouse lo si sposti sino a otte-
nere le dimensioni volute, poi si rilasci il
tasto sinistro) comparirà la parola brush
come stampata sulla superficie della
sfera.
Si noti che può essere necessario ri-
mappare la maschera di colori della
brush scegliendo Palette / Remap per
fare comparire il risultato voluto.
C on Digipaint III è possibile ottenere
la colorazione di una immagine in
una scala di grigi.
Si carichi una immagine a
scala di grigi, come ad esem- ,
pio il file Lady della directory B |* À
Images del primo disco di Di-
Si scelga quindi l’opzione H B
Colorize dal menu Mode I B
usando il pulsante destro del
mouse. Si vada poi nel qua- I B
drante Colors (clickando sul ;
bottone con il disegno di una i' :
tavolozza da pittore) e si agi- ;
scaper ottenere (ad esempio) KSJ
una gamma di sfumature ro- RjS
sa: si porti il puntatore del hrfd-.
er leggere un colore dallo schermo
allo scopo di usarlo come colore cor-
In questo modo, premendo ancora
[w], si vedrà ricolorare tut-
Ì to lo schermo, usando pe-
rò lo schermo sottostante
come riferimento ed otte-
nendo così un effetto crea-
tivo in base al modo sele-
zionato attualmente (si
provi ad esempio a sele-
zionare Range prima di da-
re il "w"). Con questa tec-
nica si possono ottenere
dei "ritagli" o dei fotogram-
mi usando Undo o Rub-
Thru sullo schermo sotto-
stante.
Commodore Computer Club - 83
I DISEGNI DI FRA’ MARTINO
La procedura di Algomartin, implementata in Amigabasic, è facile da digitare ed in
grado di generare decine di fantastiche figure astratte
Salvatore Recupero
I l programma si basa sull’algoritmo del
matematico inglese Martin; esso ripro-
duce, attraverso la visualizzazione di
punti, figure molto belle a vedersi, con
effetti grafici imprevedibili. Ma esaminia-
mo il programma che all’inizio, dopo la
presentazione, vi chiederà di inserire al-
cuni valori:
Se volete il grafico a colori (scelti, a
caso tra otto, mediante la funzione Rnd)
oppure con un solo colore (il bianco)
dovrete digitare, rispettivamente, 0 op-
pure 7.
Subito dopo sarà la volta dei sei para-
metri A, B, C, I, AX, AYche ora descri-
viamo in dettaglio.
A, B, C: sono le variabili che ogni volta
determineranno la figura. Si consiglia di
introdurre valori a caso, preferendo nu-
meri piccoli; oppure servirsi dei parame-
tri consigliati dallo stesso programma.
I; è parametro che serve a definire la
grandezza totale della figura sullo scher-
mo; è in relazione con i tre parametri visti
prima e può capitare che un ingrandi-
mento eccessivo porti -la figura fuori
schermo; al contrario, un ingrandimento
modesto può impedire di far vedere al
meglio il disegno ottenuto.
Comunque, con un po’ di esperienza,
arriverete a scegliere l'ingrandimento
ideale. La gamma dei valori può variare
da 1 all’infinito (o quasi...). Ovviamente
più è grande il valore digitato, più grande
sarà la figura sullo schermo.
AX, AY: sono le coordinate sulle quali
sarà stampata la figura. AX si riferisce
all’asse orizzontale, AY a quello vertica-
le. Fate attenzione a non esagerare con
le coordinate, altrimenti la figura genera-
ta potrebbe andare fuori schermo o non
comparire affatto. E’ chiaro che con certi
dati bisognerà effettuare dei tentativi per
trovare le coordinate migliori; vi consi-
gliamo, in linea di massima, di adottare
le coordinate al centro dello schermo
280 - 285 per l’asse X, 80 - 90 per l’asse
Y.
Non appena avrete inserito tutti i dati
(separati uno dall'altro con la virgola) e
dopo aver premuto Return, il programma
inizierà a visualizzare la figura.
Durante il procedimento sarà attivo il
menu Toolsc on il quale potrete disegna-
re una nuova figura (cambiando i para-
metri) oppure terminare il programma;
l’algoritmo, infatti, procede all'infinito e
non è prevista una fine.
La formula su cui è basata la proce-
dura si trova alla linea Formula: mentre
la linea Stampa: si incarica di disegnare
i singoli punti.
Ovviamente l’algoritmo, per la sua
semplicità, può essere variato in molti
modi, secondo la vostra fantasia ed
esperienza.
A parte la sezione del colore e della
risoluzione, modificabile facilmente
cambiando i valori di Screen , sono pos-
sibili altre modifiche come per esempio
la funzione matematica della formula, in
partenza Sqr , che può essere convertita
in Sin, Cose d altre; oppure l’operazione
contenuta nella variabile Y1 (cioè A - X)
sempre alla linea Formula : potrebbe es-
sere cambiata in B - X.
Si possono anche disegnare quadrati
invece di punti (basta tramutare le Pset
del programma con LINE ), oppure cir-
conferenze con il comando Circle.
E’ bene precisare che occorrono alcu-
ni minuti prima che le figure sullo scher-
mo comincino ad assumere aspetti ve-
ramente interessanti; ma avendo a di-
sposizione un compilatore basic (o
eventualmente implementandolo in C) i
risultati saranno eccellenti.
84 - Commodore Computer Club
REM AlgoMartin 2.0 15/8/89 by Ree Sai
crzmn: REM crea il menu tools
MENU 5, 0 , 1, “Tools"
MENU 5, 1, 1, "Nuovi dati"
MENU 5, 2, 1, “Fine"
ON MENU GOSUB scelta
MENU ON
parametri: REM raccolta di alcuni dati
CLS
COLOR 3, 0: CALL centro (2, "AlgoMartin") : suono: LINE (252, 16) - (338, 16)
LINE (250, 100) - (600, 180) , 3, b
LOCATE
14,
44 :
COLOR
1/ o
: PRINT "Parametri consigliati"
LOCATE
16,
33:
COLOR
3, 0
: PRINT -1) 5, 0.8, 1.6, 10, 200
LOCATE
17,
33:
PRINT
“2)
0.3, -3, 2.7, 10, 220, 80"
LOCATE
18,
33:
PRINT
"3)
-0.7, -1, 4, 10, 250, 80"
LOCATE
19,
33:
PRINT
“4)
8, -4, -0.48, 10, 250, 80"
LOCATE
20,
33:
PRINT
“5)
1.1112, -2.2, 0.6, 15, 285, 8:>"
LOCATE
21,
33:
PRINT
“6)
3.3331, -1.1, 0.3, 14, 285, 85“
LOCATE
22,
33:
PRINT
"7)
4, -1, -0.7, 13, 285, 85"
main: REM inizializ. dati e programma
x =» 0: y * 0
LOCATE 4, 1: COLOR 1, 0: INPUT"Graf ico ad 1 colore od a 8 (0/7) " ;ccl%
IF col % <> 0 AND col % 07 GOTO main
FOR scr * 1 TO 57
SCROLL (0, 24) - (280, 32) , -5, 0
NEXT scr
LOCATE 4, 8: INPUT"A, B, C, I, AX, AY ";a, b, c, i, ax, ay
FOR scr = 1 TO 90
SCROLL (0, 24) - (480, 32) , 5, 0
NEXT scr
scrolling (-15)
CLS: SCREEN 1, 640, 256, 3, 2
WINDOW 2, "AlgoMartin", , 0, 1
formula: REM formula algoritmo
xl = y-SGN (x) *SQR (ABS (b*x-c) )
yl * a-x: cl * 1 + RND*col%
stampa: REM stampa ogni punto grafico
PSET ( x* i + ax, y*i + ay) , INT (cl)
PSET ( x 1 * i + ax, yl*i + ay) , INT (cl)
x = xl : y » yl
GOTO formula
fine :
END
REM procedure
SUB centro (r%, mes$) STATIC
col % = 76/1
LOCATE r%, (col%-LEN (mes$) ) /2: PRINT mes$
END SUB: REM stampa al centro una stringa
SUB suono STATIC
SOUND 292, 2, 100, 1: SOUND 523.28, 2, 100, 2: SOUND 659.28, 2, 100, 3
END SUB: REM emette un suono
SUB scrolling (ab%) STATIC
FOR i = 1 TO 15
SCROLL (0, 1) - (615, 200) , 0, ab%
NEXT i
END SUB: REM effettua lo SCROLL dello schermo
SUB pausa (p%) STATIC
FOR i = 1 TO p%: NEXT i
END SUB: REM crea una pausa secondo il valore inserito
scelta: REM scelta da menu
IF MENU (1) =1 THEN WINDOW CLOSE 2:
IF MENU (1) * 2 THEN WINDOW CLOSE 2:
SCREEN CLOSE 1: RETURN parametri
SCREEN CLOSE 1: RETURN fino
Commodore Computer Club - 85
I COMPRESSORI DI AMIGA
Operando con i modem, o volendo risparmiar dischetti, capita di dover realizzare la
"quadratura del cerchio", cioè ridurre il numero di byte da elaborare o archiviare
( cosiddetti compressoti sono program-
mi in grado di ridurre le dimensioni
occupate da files di dati, siano essi files
Asdi, programmi vari (scritti in qualsiasi
linguaggio) od interi dischetti, allo scopo
di far occupare lo spazio minore possibi-
li, pur mantenendo intatti i dati stessi.
I òomplementari decompressori, che
quasi sempre sono incorporati nello
stesso programma compressore, effet-
tuano l’operazione opposta, riportando i
dati del file o del disco al formato origi-
nale.
Come qualcuno avrà intuito, questo
tipo di programmi può essere usato van-
taggiosamente, in particolare, quando si
devono inviare dati via Modem, in quan-
to cohsentono di ridurre il tempo del
collegamento a beneficio delle proprie
tasche.
' Dal momento che all’estero le BBS
(òioè le banche dati telefoniche total-
mente automatizzate) sono sviluppate
da molto tempo, esistono parecchi pro-
grammi in circolazione, studiati apposi-
di Luigi Callegari
tamente per svolgere il meglio possibile
questo compito. Caratteristica comune
di (quasi) tutti i compressori è l’essere di
pubblico dominio, infatti sono rintraccia-
bili facilmente sia nelle BBS, sia nelle
varie collezioni disponibili gratuitamente
(Flsh Disk, ad esempio).
I programmi di compressione più diffu-
si, tra quelli studiati appositamente per
gli utenti di modem possessori di Amiga,
sono Are e Zoo. Il primo è forse il più
vecchio e glorioso programma del suo
genere, esistente in versioni apposite
per (praticamente) qualunque computer
e sistema operativo (MS/DOS, Amiga-
DOS, UNIX, Macintosh...), mentre il se-
condo rappresenta una evoluzione di
Are, col quale è compatibile a livello di
comandi ("verso il basso"), pur essendo
più efficiente e con un maggior numero
di opzioni di lavoro.
Attualmente un nostro connazionale,
Paolo Zibetti, ha realizzato una nuova
versione di compressore inserita nel
pubblico dominio internazionale (Fish
Disk 293) che ha riscosso un immediato
successo grazie alle sue eccezionali
prestazioni e caratteristiche, chiamato
LHarc. Anch'esso è compatibile verso il
basso con Are, pur possedendo un algo-
ritmo di compressione molto più efficien-
te e veloce.
Altro programma usato frequente-
mente nelle BBS internazionali è il famo-
so Warp, che funziona trasformando i
dati contenuti in un disco intero, o entro
un dato numero di settori, in un file bina-
rio tranquillamente inviabile via Modem.
Ciò consente di inviare (o archiviare)
dischi in formati non standard (anche
protetti, raramente), che possono poi es-
sere riscritti usando Warp stesso oppure
il programma separato Unwarp, studia-
to appositamente per funzionare più ve-
locemente. Ovviamente anche Warp
esegue una compressione dei dati letti.
Infine citiamo Power Packer di Meo
Francois, software di pubblico dominio
rintracciabile anche in Amigazzetta, che
è in grado di comprimere files eseguibili
COMANDI DI ZOO SUPPLEMENTARI
A QUELLI DI ARC
| FORMAI
DESCRIZIONE ] FORMA 2
| -add
Aggiunge files in archivio
aP: !
-extract
Estrae files dall’archivio
| -move
Sposta files dall'archivio
aMP:
-test
Verifica integrità archivio
xNd
-print
Estrae files dall’output
xp !
j-delete
Cancella files dall’archivio
° p
! -tist
Elenca i contenuti degli archivi
ve 1
-□pdate
Aggiunge files nuovi
E
aunP:
j -freshen
Aggiorna con nuovi files
auP: I
-comment
Aggiunge commenti ai files
c
I COMANDI DI ARC
a = Aggiunge files all’archivio
b = Conserva una copia di sicurezza dell’archivio
c * Converte un elemento nel nuovo metodo di packing
d = Cancella files dall’archivio
e = Estrae files dall’archivio
I = Elenca i files in archivio
m = Sposta files all'archivio
n = Sopprime le note ed i commenti
p = Copia files dall’archivio a stdout
r = Esegue files nell’archivio
t » Verifica integrità dell’archivio
u = Aggiunge files all’archivio
v = Elenca verbosamente i files in archivio
w = Sopprime i messaggi di avvertimento
x = Estrae files dall’archivio
N.B: alcuni comandi sono ottenibili con due lettere diverse
86 - Commodore Computer Club
AMisraSheJl
fc S Lh»c < ^- :L 5 a i?8 Oct 27 1989 by Paolo Zibetti (FidoHet 2:331/181.6)
(LZHUF conpression code by Haruyasu YOSHIZAXI)
Usage: lharc Kswitches)! <Comand> <Archive> Kdest path>l Kfile patterns)]
sumary of comands:
e,x extract files fro» archi ve
l,v show archi ves contents
print extrac ted files to screen
test archive integri ty
add files to archi ves
nove files into archives
delete files fron archives
update files in archives
freshen files in archives
?
a
n
d
u
f
P
n
x
n
w
P
a
u
r
sunnary of switches:
pause after loading
no nessages for «nieries
consider extendea file nanes
no progress indicator
set working directory
set grioritv
consider file attributes
convert file nanes to «ppercase
recursively col lect files
|<»est path> nust end with or V*
l.SYS: >
i.sys:)
l.SYS:>
i.sys:>
i.sys:>
e di dati con una interfaccia utente molto
sofisticata. Non è particolarmente utile a
chi deve inviare dati via modem, in quan-
to non può raggruppare in un solo file
vari files come Are, Zoo e LHarc, ma è
indispensabile a chi deve ridurre le di-
mensioni di files eseguibili. Inoltre è un
programma sofisticatissimo dal punto di
vista dell'Interfaccia utente, consenten-
do addirittura l'elaborazione differita
(batch) dei files da comprimere (lavora
anche in assenza dell'operatore, memo-
rizzando sequenze di eventi mouse/ta-
stiera e ripetendoli da sè).
E’ veramente utile anche per decom-
primere files trattati con programmi di
crunching diffusi tra gli hacker europei.
COME FUNZIONANO
Are, Zoo e LHarc sono programmi che
leggono un file per volta, lo comprimono
e lo inseriscono in un file detto di archi-
viazione, solitamente col nome termina-
to da un suffisso (.are, .zoo e .Izh rispet-
tivamente). Questo file conserva sia i
dati compressi veri e propri, sia informa-
zioni estese su di essi (nome, data di
inserimento, tecnica di compressione
usata ed altro), rileggibili tramite apposi-
to comando (I). Non si tratta ovviamente
di un file eseguibile, ma di una sequenza
di bytes comprensibili soltanto ai pro-
grammi di compressione che li ha gene-
rati.
I programmi sono sviluppati in versioni
per vari sistemi operativi. Ciò significa
che se qualcuno usa, ad esempio. Zoo
sul proprio Macintosh o IBM per inserire
in una BBS una serie di files, un altro
utente può usare un Amiga od un Apple
per riportare tali files alle dimensioni ori-
ginali senza problemi di alcun tipo, una
volta letto via modem tale file.
Si badi che, in nome di questa unifor-
mità, vi sono delle caratteristiche di fun-
zionamento particolari, che potrebbero
risultare inusitate a chi è ormai abituato
ad usare AmigaDOS.
Ad esempio, i ben noti caratteri jolly,
cioè cancellerò (#), punto di domanda
(?), ed asterisco O, sono presi in consi-
derazione anche da Ms/Dos e da Unix.
Inoltre i nomi dei files, spesso, vengono
tagliati ai primi dieci o quindici caratteri e
se ne considera importante il suffisso.
Ad esempio, per default Are assume
che il file di archiviazione sul quale lavo-
rare termini nel nominativo con la stringa
".are".
Ricordiamo che il suffisso di nome di
un file è tipicamente una sequenza di tre
caratteri che segue il punto (.), eredità di
Ms/dos principalmente.
Un’ultima precisazione riguarda il fatto
che i compressori memorizzano un file
per nome, quindi non è lecito memoriz-
zare due volte un file con lo stesso nome.
Ad esempio, se in due directory sepa-
rate abbiamo due files differenti chiamati
ambedue Cattorelli, la prima volta il pro-
gramma lo archivierà normalmente, ma
al momento della compressione dei files
nella seconda directory segnalerà File
already present e non lo inserirà. Ciò
potrebbe comportare la perdita di prezio-
si files, quindi si faccia attenzione e non
Commodore Computer Club - 87
Workbench Screen
AmgaShel 1
If yoa Hke thìs prò gran, and find it of use, then your contribution «Il
be appreciated. You nay not use this produci in a connercial environnent
or a goverrmental organization «ithout payìng a license fee of $35.
If you fai! to abide by thè terra of this license, then your conscience
«11 haunt you for thè rest of your life.
Usage: ARC {aMufdxerplvtc>[bsimlIg<password>l <archive> Kfilenane) . . .
Ubere: a = add files to archi ve
n = nove files to archive
u = update files in archive
f : freshen files in archive
•\ d : delete files froH archive
x,e = extract files fron archive
p = copy files fron archive to standard output
1 = lisi files in archive
v = verbose listing of files in archive
t : test archive integri ty
c : convert entry to nev packing nethod
b z retain backup copy of archive
s r suppress con>ression (store only)
v r suppress varning nessages
n - suppress notes and connents
8 = Encrypt/decrypt archive entry
^WS*)* 6 ** 1 * to thè progran docunentation for cou>lete instructions.
:116
si comprimano troppi files disparati in
uno stesso file se non si è ben sicuri che
siano dotati tutti di nomi differenti.
ARC
Il capostipite dei compressori d'archivi
è stato diffuso originariamente sul Flsh
Disk 70 in versione 0.23, completamen-
te compatibile con la famosa versione
5.00 di MS/DOS.
Ricordando che digitando il suo nome
senza parametri da Shell, e battendo
Return, si ottiene l'elenco dei comandi
disponibili, la sua sintassi di chiamata è:
ARC <comando> <nomearc> [<argomento>]
in cui con <comando> indichiamo una
lettera che esprime il comando da ese-
guire (vedi Figura 1), maiuscola o minu-
scola. Con <arc> si indica il nome del file
di archiviazione, anche senza estensioni
(caratteri dopo il punto nel nome), nel
quale caso si assume per default ”.ard\
Ad esempio, con la linea...
Arca Ormellese *. *
...si aggiungono al file di archivio Or-
mellese. are tutti i files presenti nella di-
rectory corrente. I simboli di asterisco
indicano "qualunque stringa", secondo
le convenzioni dei "caratteri jolly" di
MS/DOS. Analogamente il comando...
ARC m RAM: Gente dfl : pii/ *.c
...muove nel file di archivio Gen-
te. ARC presente nel Ram Disk tutti i files
della directory pii presente nel dischetto
inserito nel primo drive esterno (o nel
secondo interno di un A2000) che abbia-
no il nome terminante col suffisso ".c".
Con "muovere" o "spostare", termini ru-
bati all’inglese nel gergo informatico ita-
liano, si intende che i files accettabili (in
questo caso quelli con i nomi terminanti
per .c) vengono compressi, inseriti nel
file di archivio e cancellati.
Invece con "estrarre un file dall’archi-
vio", ovvero col comando "x", si intende
il leggerlo dal file di archiviazione do-
ve è stato compresso e memorizzato,
e riportarlo al formato originale. Ad
esempio...
ARC x dfO: testi ’.doc
...scandisce il file di archiviazione
Testi.arc, assunto presente nel disco
inserito nel drive interno, ricavandone
tutti i files con nomi terminanti in
".doc". Si noti che ciò presuppone im-
plicitamente che tutti i files vengono
memorizzati nell’archivio col nome
originale, come difatti accade.
Per leggere i nomi e le
statistiche di tutti i files
inseriti in un archivio, si
usa qualcosa come...
ARC I archi
ARC v sys: mede
Il primo genera un
elenco normale dei files
compressi nell’archivio
"archi.ARC" nella direc-
tory corrente; il secondo
un elenco molto crco-
stanziato dei files nell'ar-
chivio "mede. ARC". In
quest’ultimo vengono
elencati ordinatamente:
nome del file, lunghezza
in bytes originale, tipo di
compressione usata, ri-
duzione percentuale, di-
mensione in bytes nel-
l’archivio, data di inseri-
mento, ora di inserimen-
to, codice di checksum.
La terza colonna riporterà Squeezed
oppure Crunched : Il primo indica che il
file è stato compresso con l'algoritmo di
Huffman , il secondo con quello di Lem-
pel-Zev. La scelta del tipo di compressio-
ne viene effettuata autonomamente da
ARC al momento dell’inserimento del file
in archivio, in modo da ottenere la mas-
sima riduzione possibile; in genere Lem-
pel Zev funziona meglio con i files corti.
ZOO
Zoo è una evoluzione di Are scritta per
Amiga da Rahul Desi e rintracciabile,
oltre che in numerose BBS, anche sul
Fish Disk numero 164. E’ scritto in C ed
GLI SWITCHES DI LHARC:
-p = Pausa dopo il caricamento
-m = Nessun messaggio di richiesta
-x = Usa nomi di file con estensione
-n = Disabilita messaggi di lavoro
-w = Indica la directory di lavoro
-P = Fissa la priorità
-a = Considera gli attributi di file
-u = Converte nomi di file in maiuscolo
-r = Raggruppa files ricorsivamente
88 - Commodore Computer Club
esistono da tempo versioni per Apple,
MS/DOS, UNIX ed altri sistemi operativi.
Zoo può memorizzare ed estrarre se-
lettivamente files dagli archivi come Are,
ma usa un algoritmo di Lempel-Ziv mo-
dificato, che consente una riduzione dal
20% all’80% del file sorgente. I dati pos-
sono essere recuperati anche da archivi
danneggiati e si può sottoporre a com-
pressione il file di archivio per recupera-
re lo spazio liberato da files archiviati
eliminati.
Essendo compatibile con Are, tutti gli
esempi ed i comandi visti per quest'ulti-
mo valgono anche per Zoo. Il formato
generico di Zoo risulta decisamente
complesso da imparare a memoria:
Zoo {acfDeghILPTuUvVx} [aAcCdEf-
glmMnNoOpPqSul :/.<§>+-=] archivio [fi-
le]
Zoo -comando archivio [file]...
Digitando Zoo h [+ return] si ottiene un
elenco completo delle funzioni disponi-
bili. I caratteri racchiusi tra parentesi
graffe sono comandi, quelli racchiusi tra
parentesi quadre sono modificatori dei
comandi. Ovviamente non tutti i modifi-
catori funzionano con tutti i comandi.
Con "-comando" si intende non una sin-
gola lettera ma una stringa tra quelle
riportate in Figura 2, adatte all’uso da
parte dei non esperti, che quindi vengo-
no chiamati Novice Command, in con-
trapposizione agli Expert Commands ,
che sono in pratica le stesse funzioni,
ottenute però con singole lettere (come
Are).
LHarc
La versione di LHarc per Amiga in
circolazione attualmente è la 1.00, com-
patibile con la 1. 13 per MS/DOS, ed è
stata scritta da Paolo Zibetti (FidoNet 2:
331/101.6).
Anche LHarc è un programma di archi-
viazione di files come Are e Zoo, con i
quali è compatibile in tutti i comandi fon-
damentali. Il suo punto debole è la velo-
cità: Zoo V2.0, ad esempio, è più veloce.
Comunque, se si preferisce l’efficienza
di compressione, è il programma miglio-
re in circolazione per Amiga (e la decom-
pressione è più veloce della compressio-
ne).
La sua sintassi, da Shell, è come se-
gue:
LHarc [Switches] <Comando> Ar-
chivio [Destinazione] [Maschera files)
...in cui le parentesi quadre delimitano
parametri opzionali.
Con Comando si indica una lettera
secondo quanto visto per Are (figura 1 ),
con identica funzione, tra le seguenti:
e, x, I, v, p, t, a, m, d, u, f.
Con Archivio s\ indica il nome standard
AmigaDOS (con eventuale path) del file
di archiviazione, al quale viene, per de-
fault, aggiunto il suffisso ".LZH" se non
diversamente specificato.
Analogamente con Destinazione si in-
dica la directory di destinazione alla qua-
le vengono inviati i files estratti con i
comandi x oppure e.
Con Maschera files si indica una strin-
ga che esprima i nomi di files interessati
all’operazione.
I caratteri jolly sono "?” e che è
sinonimo di "#?" (qualunque numero di
qualunque carattere). Gli switches. cioè
i modificatori di funzionamento, propri di
LHarc, sono invece riportati nel terzo
riquadro.
I BENCHMARKS
A bbiamo provato a confrontare tra di loro i programmi di compressione files
più diffusi , ottenendo dei significativi "benchmarks", dai quali ognuno può
trarre le proprie conclusioni.
Si noti che i programmi analizzati sono comunque difficili da paragonare, in
quanto diversi per concezione tra di loro: LHarc, Zoo e Are sono dei compres-
sori di archivi veri e propri, mentre Power Packer è in grado di trattare
agevolmente anche files eseguibili con un notevole grado di sofisticazione ed
una interfaccia Intuitionìzzata molto evoluta. Inoltre PowerPacker genera un
file eseguibile con codice di autodecompressione incorporato da un file
eseguibile, mentre gli altri programmi generano un file archiviato con dei dati
supplementari che consentono di agganciarvi altri files compressi.
I benchmarks sono stati eseguiti sui files dei programmi DiskMaster VI .3 di
61860 Kbytes e l’editor/assembler ArgEd della Argonaut di 149600 bytes.
contenenti ambedue codici assembly, testi ASCII e dati grafici. Per rilevare i
tempi è stato utilizzato il programma RTimer del pacchetto Disk Mechanic della
Lake Forest Logic.
I computer ospiti erano un Amiga 2000 con scheda GVP Impact A3000 con
processore 68030 a 25 MHz per il primo benchmark ed un normale Amiga 500
per il secondo.
I tempi riportati sono in secondi. Si noti che il programma Power Packer
V2.3b di Nico Francois è stato usato due volte con efficienze di lavoro diverse
("besf e "good").
Programma
Tempo
Bytes Riduzione
PPacker V2.3b (best)
126.5
33448
46%
PPacker V2.3b (qood)
41.8
34144
45%
LHarc VI .00
17.9
32002
48%
Ì Zoo V2.00
3.1
40969
34%
Are V5.00
10.5
45847
26%
Programma
Tempo
Bytes
Riduzione
PPacker V2.3b (best)
1707 70904
52%
i PPacker V2.3b (qood)
567
72944
51%
LHarc VI .00
429
67006
55%
Zoo V2.00
34
90986
39%
1 Are V5.00
162 '108524
27%
Commodore Computer Club - 89
Warp
Il programma Warp della SDS, giunto
alla versione 1. 1 1 (rintracciabile sul Fish
Disk 243) è quasi banale da usare.
Le sue sintassi di chiamata da Shell
sono:
Warp read <Start> <end> <nomefile>
Warp write <nomefile>
Con la prima linea si impartisce di
leggere (Read) i dati contenuti nel disco
inserito nel drive interno, dal settore
<Start> al settore <End> opzionalmente,
scrivendo il risultato nel file nomefile.
Ad esempio, con le linee:
Warp Read 10 20 DfO: Piera
Warp Read Dfl: Filosofia
Warp Write Dfl .Casorate
si ottiene, rispettivamente:
(1) la scrittura nel file Piera del disco
inserito nel drive interno di Amiga dei
NOTE STORICHE E TECNICHE
A RC è stato scritto per la prima volta nel 1 985 dalla System Enhancement
Associates (21 New Stree, Wayne, NJ 07470, USA) e da allora è stato
sviluppato probabilmente per qualunque tipo di computer in grado di collegarsi
ad una rete. Sono poi state introdotte versioni sempre nuove di Are, ma le sue
caratteristiche nel mondo Amiga sono superate da quelle di altri programmi di
più recente creazione (Zoo, LHarc), che fanno uso di algoritmi di compressione
nuovi. Non dimentichiamo che l'informatica e le branche della matematica
dedite alla formulazione di algoritmi iterativi ed adatti ai computers sono di
nascita relativamente recente, quindi nascono invenzioni ed idee nuove
piuttosto frequentemente!
Comunque, alla base della nascita di ARC e dei compressori di archivi vi
sono un numero ristretto di personaggi e di concetti, dai quali è nata la filosofia
e la tecnologia di base di questo tipo di software. Citiamo Brian Kernighan (si,
quello del linguaggio C!) e Paul Plauger che hanno formulato le prime idee nel
libro "Software Tools", Dick Greenlaw che ha scritto i programmi di pubblico
dominio SQ e USQ (già pubblicati da Amigazzetta), Kent Williams che ha
trasformato delle formule matematiche di Lempel-Zev in un programma fun-
zionante per la prima volta e David Schaderer che ha formulato e pubblicato
su PC Tech Journal il primo algoritmo di CRC (Cycle Redundancy Check)
adatto a piccoli sistemi computerizzati, che ha dato la prima idea funzionante
per aumentare l'affidabilità dei sistemi di compressione di archivi.
contenuti dei settori tra il decimo ed il
ventesimo compresi.
(2) la scrittura dell’intero contenuto del
disco inserito nel drive interno nel file
Filosofia sul disco inserito nel primo dri-
ve esterno (o secondo interno di A2000)-
(3) di riscrivere il disco inserito nel
drive interno leggendo dal disco DF1 il
file Casorate, che ovviamente deve es-
sere stato generato da Warp.
Si noti che Warp lavora sempre sul
disco inserito in DFO: e che non ha molto
senso, normalmente, specificare i settori
di inizio e di file della lettura, in quanto
un disco AmigaDOS parzialmente sal-
vato serve a ben poco, quindi bisogna
sempre salvare da 0 a 79 (default).
Insieme a Warp si trova spesso anche
UnWarp, che è più veloce nell’effettuare
l'operazione di Warp Write di un file, e
verifica, nel contempo, l’eventuale pre-
senza di quindici tipi di virus.
Si ricordi che i virus di bootblock di
Amiga giacciono nei settori 0 e 1 del
disco, quindi Warp potrebbe tranquilla-
mente archiviarli e ricostruirli al momen-
to del Warp Write!
Con UnWarp si è parzialmente protetti
da questo rischio, anche se alcuni nuovi
Link Virus, quelli che non si attivano al
boot ma si agganciano ai files eseguibili,
non sono ancora stati previsti e quindi
non possono esser riconosciuti.
90 - Commodore Computer Club
GUIDA ALL’ACQUISTO
QUANTO COSTA IL TUO COMMODORE
Amiga 2000 - L. 2.715.000
Microprocessore Motorola MC68000 - Clock 7. 16MHz - Kickstart ROM - Memoria RAM: 1 MByte - 3 chip custom per DMA, Video, Audio, I/O -
5 Slot di Espansione Amiga Bus 1 00 pin AutoconfigTM - i slot di Espansione 86 pin per Schede Coprocessore - 2 Slot di Espansione compati-
bili AT/XT- 2 Slot di Espansione compatibili XT - 2 Slot di Espansione Video - 1 Floppy Disk Drive da 3 1/2", 880 KBytes - Porta seriale RS232C *
- Sistema Operativo single-user, multitasking AmigaDOS - Compatibilità MS-DOS XT/AT disponibile con schede interne Janus (A2088 -
A2286) - Monitor escluso
Amiga 500 - L. 995.000
Microprocessore Motorola MC68000 - Clock 7.16 MHz - Kickstart ROM - Memoria RAM: 512 KBytes - 3 Chip custom per DMA, Video. Audio,
I/O - 1 Floppy Disk Driver da 3 1/2", 880 KBytes - Porta seriale RS232C - Porla parallela Centronics
Videomaster 2995 - L. 1.200.000
Desk Top Video - Sistema per elaborazini video semiprofessionale composto da genlock, digitalizzatore e alloggiamento per 3 drive A201 0 - In-
gressi videocomposito (2), RGB - Uscite Videocomposito, RF, RGB + sync -
Floppy Disk Driver A 1010 - L. 335.000
Floppy Disk Driver - Drive esterno da 3 1/2” - Capacità 880 KBytes - Collegabile a tutti i modelli della linea Amiga, alla scheda A2088 e
al PCI
Floppy Disk Drive A 2010 - L. 280.000
Floppy Disk Drive - Drive interno aggiuntivo da 3 1/2" - Capacità 880 KBytes - Collegabile ad Amiga 2000
Hard Disk A 590 - L. 1.750.000
Hard Disk+ Controller + RAM - Scheda Controller - Hard Disk da 3 1/2” 20 MBytes - 2 MBytes "fast" RAM - Collegabile all'Amiga 500
Scheda Janus A 2088 + A 2020 - L. 1.050.000
Scheda Janus XT + Floppy Disk Drive da 5 1 /4", 360 KBytes - Scheda Bridgeboard per compatibilità MS-DOS (XT) in Amiga 2000 - Micropro-
cessore Intel 8088 - Coprocessore matematico opzionale Intel 8087
A2286+A2020 - L. 1.985.000
Scheda Janus AT 4- Floppy Disk Drive da 5 1/4", 1 .2 MBytes - Scheda Bridgeboard per compatibilità MS-DOS (AT) in Amiga 2000 - Micropro-
cessore Intel 80287 - Clock 8 MHz - RAM: 1 MBytes on-board - Floppy Disk Controller on-board - Floppy Disk Driver disegnato per l'installazio-
ne all'Interno dell’Amiga 2000 -
Scheda A2620 - L. 2.700.000
Scheda Processore Alternativo 32 bit - Scheda per 68020 e Unix - Microprocessore Motorola MC68020 - Coprocessore matematico Motorola
MC6888 1 (opzionale MC68882)
Scheda A Unix - L. 3.250.000
Sistema Operativo AT&T Unix System V Release 3 - Per Amiga 2000 con scheda A2620 e Hard Disk 100 MBytes
Hard Disk A2092+PC5060 - L. 1.020.000
Hard Disk e controller - Hard Disk 3 1/2" ST506 - Capacità formattata 20 MBytes
Hard Disk A2090+2092 - L. 1.240.000
Hard Disk e controller - Hard Disk 3 1/2" ST506 - Capacità formattata 20 MBytes
Hard Disk A2090+A2094 - L. 1.900.000
Stesse caratteristiche del kit A2092 ma con disco da 40 MBytes
Espansione di memoria A2058 - L. 1.149.000
Espansione di memoria - Scheda di espansione per Amiga 2000 - Fornita con 2 MBytes "fast" RAM, espandibile a 4 o 8 MBytes
Scheda Video A2060 - L. 165.000
Modulatore video - Scheda modulatore video interna per Amiga 2000 - Uscite colore e monocromatica - Si inserisce nello slot video
dell'Amiga 2000
Genlock Card A2301 - L. 420.000
Genlock - Scheda Genlock semiprofessionale per Amiga 2000 - Permette di miscelare immagini provenienti da una sorgente esterna con im-
magini provenienti dal computer
Professional Video Adapter Card A2351 - L. 1.500.000
Professional Video Adapter - Scheda Video Professionale per Amiga 2000 (B) - Genlock qualità Broadcast - Frame Grabber - Digitalizzatore -
Include software di controllo per la gestione interattiva
(Disponibile da maggio '89)
A501 - L. 300.000
Espansione di memoria - Cartuccia di espansione di memoria da 512 KBytes per A500
A520 - L. 45.000
Modulatore RF - Modulatore esterno A500 - Permette di connettere qualsiasi televisore B/N o colori ad Amiga 500
Commodore Computer Club - 97
A Scart - L. 27.000
Cavo di collegamento A500/A2000 con connettore per televisione SCART
Monitor a colori 1084 - L. 595.000
Monitor a colori ad alta risoluzione - Tubo 14” Black Matrix antiriflesso - Pitch 0.39 mm - Compatibile con Amiga 500/2000, PC (tutta la
gamma), C64 e CI 28
Monitor a colori 2080 - L. 770.000
Monitor a colori ad alta risoluzione e lunga persistenza - Tubo 14” Black Matrix antiriflesso - Pitch 0.39 mm - Frequenza di raster 50 Hz - Compa-
tibile con Amiga 500/2000, PC (tutta la gamma), C64 e CI 28
Monitor Monocromatico A2024 - L. 1.235.000
Monitor monocromatico a fosfori “bianco-carta” - Turbo 14" antiriflesso - (Disponibile da marzo '89)
PC60/40 - L. 7.812.000
Microprocessore Intel 80386 - Coprocessore matematico opzionale Intel 80387 - Clock 8 o 16 MHz selezionabile via software e da tastiera -
Monitor monocromatico 14" - Tastiera avanzata 102 tasti con 12 funzioni - Sistema Operativo MS-DOS 3 2.1 - Interprete GW-Basic
PC60/40C - L. 8.127.000
Stessa configurazione ma con monitor 14" a colori mod. 1084
PC 60/80 - L. 10.450.000
Microprocessore Intel 80386 - Coprocessore opzionale Intel 80387 - Clock 8 o 1 6 MHz selezionabile via software e da tastiera - Memoria RAM:
2.5 MBytes - 1 Floppy Disk Drive da 5 1/4", 1.2 MBytes - 1 Floppy Disk Drive opzionale da 3 1/2”, 1.44 MBytes - 1 Hard Disk da 80 MBytes- 2
Porte parallele Centronics - Mouse video EGA (compatibile MDA - Hercules - CGA). Emulazioni disponibili via hardware e software - Monitor
monocromatico 14" -Tastiera avanzata 102 tasti con 1 2 tasti funzione - Sistema Operativo MS-DOS 3.21 - Ambiente Operativo Microsoft Win-
dows/386 - Interprete GW-Basic
PC60/80C - L. 10.700.000
Stessa configurazione ma con monitor 14" a colori mod. 1084
PC40/20 - L. 4.100.000
Microprocessore Intel 80286 - Coprocessore matematico opzionale Intel 80287 - Clock 6 o 10 MHz selezionabile via software, hardware o da
tastiera - Memoria RAM: 1 MByte - 1 Floppy Disk Drive da 5 1/4", 1.2 MBytes - 1 Hard Disk da 20 MBytes - Porta seriale RS232 - Porta parallela
Centronics - Scheda video AGA multistandard (MDA - Hercules - CGA) Emulazioni disponibili via hardware e software - Monitor monocroma-
tico 14" - Tastiera avanzata 102 tasti con 12 tasti funzione - Sistema Operativo MS-DOS 3.21 - Interprete GW-Basic
PC40/20C - L. 4.350.000
Stessa configurazione ma con monitor 14" a colori mod. 1084
PC 40/40 - L. 5.285.000
Microprocessore Intel 80286 - Coprocessore matematico opzionale Intel 80287 - Clock 6 o 10 MHz selezionabile via software, hardware o da
tastiera - Memoria RAM: 1 MByte-1 Floppy Disk Drive da 5 1/4", 1.2MBytes- 1 Hard Disk da 20 MBytes -Porta seriale RS232- Porta parallela
Centronics - Scheda video AGA multistandard (MDA - Hercules - CGA) Emulazioni disponibili via hardware e software - Monitor monocroma-
tico 14” - Tastiera avanzata 102 tasti con 12 tasti funzione - Sistema Operativo MS-DOS 3.21 - Interprete GW-Basic
PC40/40C - L. 5.535.000
Stessa configurazione ma con monitor 14” a colori mod. 1084
1352 - L. 78.000
Mouse - Collegabile con Microsoft Bus Mouse - Collegabile direttamente a PCI, PC10/20 - III, PC40 - III
PC910- L. 355.000
Floppy Disk Drive - Drive interno aggiuntivo da 3 1 /2" per PC 1 0/20-I-II-III - Capacità 360 o 720 KBytes selezionabile tramite "config. sys" - Cor-
redo di telaio di supporto per l’installazione in un alloggiamento per un drive da 5 1/4" - Interfaccia identica ai modelli da 5 1/4"
PCI - L. 995.000
Microprocessore Intel 8088 - 1 Floppy Disk Drive da 5 1/4” - Porta seriale RS232C - Porta parallela Centronics - - Monitor monocromatico 1 2" -
Tastiera 84 tasti - Sistema Operativo MS-DOS 3.2 - Interprete GW-Basic
PCEXP1 - L. 640.000
PC Expansion Box - Box esterno di espansione per PC 1 - Alimentatore aggiuntivo incluso - Contiene 3 Slot di Espansione compatibili Ibm XT -
Alloggiamento per Hard Disk da 5 1/4" - Si posiziona sotto ii corpo del PCI e viene collegato tramite degli appositi connettori
PC10-III - L. 1.360.000
Microprocessore Intel 8088 Clock 4.77 MHz 9.54 MHz (doublé) selezionabile via software e da tastiera - Memoria RAM: 640 KBytes - 2 Floppy
Disk Drive da 5 1/4", 360 KBytes - Porta seriale RS232C - Porta parallela Centronics - Porta Mouse per Mouse Commodore 1352 (compatibile
Microsoft Bus Mouse - Tastiera avanzata 1Ò2 con 12 tasti funzione Sistema Operativo MS-DOS 3.21 - Interprete GW-Basic
PC10-IIIC - L. 1.675.000
Stessa configurazione ma con monitor 14" a colori mod. 1084
PC20-III - L. 2.095.000
Microprocessore Intel 8088 - Clock 4.77 MHz 9.54 MHz (doublé) selezionabile via software e da tastiera - 1/4", 360 KBytes - 1 Hard Disk da 20
MBytes - Porta seriale RS232C - Porta parallela Centronics - Porta Mouse per Mouse Commodore 1352 (compatibile Microsoft Bus Mouse) -
Tastiera avanzata 102 con 12 tasti funzione Sistema Operativo MS-DOS 3.21 - Interprete GW-Basic
92 - Commodore Computer Club
PC 20- 1 1 1 C - L. 2.410.000
Stessa configurazione ma con monitor 14” a colori mod. 1084
Nuovo C64 • L. 325.000
Nuovo Personal Computer CPU 64 KBytes RAM - Vastissima biblioteca software disponibile - Porta seriale Commodore - Porta registratore per
cassette - Porta parallela programmabile -
C128D - L. 895.000
Personal Computer CPU 128 KBytes RAM espandibile a 512 KBytes - ROM 48 KBytes - Basic 7.0 - Tastiera separata - Funzionante in modo
128,64 o CP/M 3.0 - Include floppy disk drive da 340 KBytes
Floppy Disk Drive 1541 II - L. 385.000
Floppy Disk Drive - Floppy Disk Drive da 5 1/4" singola faccia - Capacità 170 KBytes - Alimentazione separata - Compatibile con C64,
CI 28, C128D
Floppy Disk Dirve 1581 - L. 420.000
Floppy Disk Drive da 3 1/2" doppia faccia - Capacità 800 KBytes - Alimentazione separata - Compatibile con C64. CI 28. C128D
1530 - L. 55.000
Registratore a cassette per C64, CI 28, C128D
Accessori per C64 - 128D
1700 - Espansione di memoria - Cartuccia di espansione di memoria a 128 KBytes per CI 28 - L. 170.000
1750 - Espansione di memoria - Cartuccia di espansione di memoria 512 KBytes per C128 - L. 245.000
1784 - Espansione di memoria - Cartuccia di espansione di memoria a 256 KBytes per C64 - Fornita di alimentatore surdimensionato -
L. 198.000
16499 - Adattatore Telematico Omologato - Collegabile al C64 - Permette il collegamento a Videotel. P.G.E. e banche dati
L. 149.000
1399 - Joystick - Joystick a microswitch con autofire - L. 29.000
1351 - Mouse - Mouse per C64, C128, C128D - L. 72.000
Monitor Monocromatico 1402 - L. 280.000
Monitor monocromatico a fosfori “bianco-carta" - Turbo 12” antiriflesso - Ingresso TTL - Compatibile con tutta la gamma PC
Monitor Monocromatico 1404 - L. 365.000
Monitor monocromatico a fosfori ambra - Turbo 14" antiriflesso a schermo piatto - Ingresso TTL - Compatibile con tutta la gamma PC -
Base orientabile
Monitor Monocromatico 1450 - L. 470.000
Monitor monocromatico BI-SYNC a fosfori "bianco-carta" - Turbo 14" antiriflesso - Ingresso analogico e digitale - Doppia frequenza di sincro-
nismo orizzontale per compatibilità con adattatori video MDA, Hercules, CGA, EGA e VGA
Monitor a colori 1802 - L. 445.000
Monitor a colori - Turbo 14" - Collegabile a C64, CI 28, C128D
Monitor monocromatico 1900 - L. 199.000
Monitor monocromatico a fosfori verdi - Turbo 12" antiriflesso - Ingresso videocomposito - Compatibile con tutta la gamma Commodore
Monitor a colori 1950 - L. 1.280.000
Monitor a colori BI-SYNC alta risoluzione - Turbo 14" antiriflesso - Ingresso analogico e digitale - Doppia frequenza di sincronismo orizzontale
per compatibilità con adattatori video MDA, Hercules, CGA, EGA e VGA
Stampante MPS 1230 - L. 465.000
Stampante a matrice di punti - Testina a 9 aghi - 120 cps - Bidirezionale - 80 colonne - Near Letter Quality - Stampa grafica - Fogli singoli e
modulo continuo - Trascinamento a trattore e/o frizione - Interfaccia seriale Commodore e parallela Centronics - Compatibile con tutti i
prodotti Commodore
MPS 1230R - L. 19.000
Nastro per stampante
Stampante MPS 1500C - L. 495.000
Stampante a colori a matrice di punti - Testina a 9 aghi - 130 cps - Bidirezionale - 80 colonne - Supporta nastro a colori o nero - Near Letter Qua-
lity - Stampa grafica - Fogli singoli e modulo continuo - Trascinamento a trattore e/o frizione - Interfaccia parallela Centronics - Compatibile con
la gamma Amiga e PC
MPS1500R - L. 37.000
Nastro a colori per stampante
MPS1500R - L.37.000
Nastro a colori per stampante
Stampante MPS 1550C - L. 575.000
Stampante a colori a matrice di punti - Testina a 9 aghi - 1 30 cps - Bidirezionale - 80 colonne - Supporta nastro a colori o nero - Near Letter Qua-
lity - Stampa grafica - Fogli singoli e modulo continuo - Trascinamento a trattore e/o frizione - Interfaccia seriale Commodore e parallela Centro-
nics - Compatibile con tutti i prodotti Commodore
Commodore Computer Club - 93
I COMMODORE POINT
LOMBARDIA
Minio
• Ai RISPARMIO • V.IE MONZA 204
• BCS • VIA UONTEGANI 11
• BRAMA A . VIA PIER CAPPONI 5
• E D S - C.SO PORTA TICINESE a
• FAREF - VIA A VOLTA 21
• FIOPPERIA - V IE MONTENERO 31
• GBC - VIA CANTONI 7 - VIA PETRElLA 6
• GIGLIONI - V LE LUIGI STURZO 45
• L UFFICIO 2000 - VIA RIPAMONTI 213
• LOGITEK • VIA GOLGI 60
• LU - MEN - VIA SANTA MONICA 3
• MARCUCCI • VIA FILI BRONZETTI 37
• MELCHIONI - VIA P. COLLETTA 37
• MESSAGGERIE MUSICALI - GALLERIA DEL
CORSO 2
• NEWEL - VIA MAC MAHON 75
• PANCOMMER2 ITALIA - VIA PADOVA 1
• SUPERGAMES • VIA VITRUVIO 38
• 68000 E DINTORNI - VIA WASHINGTON 91
Provincia di Milano
• GINO FERRARI CENTRO HI-FI - VIA MADRE
CABRINI 44 - S ANG LODK3IANO
• FILI GALIMBERTI - VIA NAZIONALE DEI
GIOVI 28' 36 - BARLASSINA
• TECNOLUX - VIA PIETRO NENNI 5 - BERNATE
TICINO
• OGGIONI & C. - VIA DANTE CESANA 27 - CA-
RATE BRIANZA
• AL RISPARMIO - VIA U. GIORDANO 57 - CINI-
SELLO BALSAMO
• GBC - V.LE MATTEOTTI 66 - CINISELLO
BALSAMO
• CASA DELLA MUSICA - VIA INDIPENDENZA
21 - COLOGNO MONZESE
• PENATI - VIA VERDI 28/30 - CORBETTA
• EPM SYSTEM - V LE ITALIA 12 - CORSICO
• PG. OSTELLARI - VIA MILANO 300 •
DESIO
• CENTRO COMPUTER PANDOLFI - VIA COR-
RIDOI 18 - LEGNANO
• COMPUTEAM - VIA VECELUO 41 - LISSONE
• M B M - CSO ROMA 112 • LODI
• L AMICO DEL COMPUTER - VIA CASTELLINI
27 - MELEGNANO
• BIT 84 - VIA ITALIA 4 - MONZA
• IL CURSORE • VIA CAMPO DEI FIORI 35 - NO-
VATE MIL
• ICO - VIA DEI TIGLI 14 - OPERA
• R A C ELGRA - VIA SAN MARTINO 13 - PA-
LAZZOLO MIL.
• ESSEGIEMME SISTEMI SAS - VIA DE AMICIS
24 - RHO
• TECNO • CENTRO - VIA BARACCA 2 -
SEREGNO
• NIWA H ARDA SOFT - VIA B- BUOZZI 94 - SE-
STO SAN GIOV
• COMPUTER SHOP - VIA CONFALONIERI
35 - VILLASANTA
• ACTE - VIA B CREMIGNAN1 13 - VIMERCATE
• IL COMPUTER SERVICE SHOP - VIA PADANA
SUPERIORE 197 - VIMODRONE
Bergamo
•D.R.B. - VIA BORGO PALAZZO 65
• TINTORI ENRICO AC. - VIA BROSETA 1
• VIOEO IMMAGINE - VIA CARDUCCI c/o CIT-
TA' DI MERCATO
Provincia di Bergamo
BERTULEZZI GIOVANNI - VIA FANTONI 48 - AL-
ZANO LOMBAROO
• COMPUTER SHOP - VIA VITTORIO VENETO 9
- CAPRIATE SAN GERVASlO
• B M R - VIA BUTTARO 4/T - CALMINE
• MEGABYTE 2 - VIA ROMA 61/A - GRUMELLO
• OTTICO OPTOMETRISTA ROVETTA - P ZZA
GARIBALDI 6 - LOVERE
• COMPUTER POINT - VIA LANTIERI 52 •
SARNICO
• A B. INFORMATICA - STRADA STATALE CRE-
MASCA 66 - URGNANO
Brescia
• MASTER INFORMATICA - VIA F.LLI UGONI
10/B
PROVINCIA DI BRESCIA
• MISTER BIT - VIA MAZZINI 70 - BRENO
• CAVALLI PIETRO - VIA 10 GIORNATE 14
BIS - CASTREZZATO
• VIETTI GIUSEPPE - VIA MILANO 1/B -
CHIARI
• MEGABYTE - P.ZZA MALUEZZI 14 - DESEN-
ZANO DEL GARDA
• BARESI RINO 4C. - VIA XX SETTEMBRE 7
- GHEOI
• INFO CAM - VIA PROVINCIALE 3 - GRATA-
CASOLO
• PAC-LAND" di GARDONI - CENTRO COM I® -
LA CASA DI MARGHERITA DESTE - VIA GlOR-
GIONI 21
Como
• IL COMPUTER • VIA INDIPENDENZA 90
• 2M ELETTRONICA - VIA SACCO 3
Provincia di Como
• ELTRON - VIA IV NOVEMBRE 1 • GARZANO'
• DATA FOUND - VIA A. VOLTA 4 -ERBA
• CIMA ELETTRONICA - VIA L DA VINCI 7 •
LECCO
• FUMAGALLI - VIA CAIROU 48 -LECCO
• RIGHI ELETTRONICA - VIA G LEOPARDI 26 •
OLGIATE COMASCO
Cremona
• MONDO COMPUTER - VIA GIUSEPPINA
11/8
• PRISMA - VIA BUOSO DA DOVARA 8
• TELCO - P.ZZA MARCONI 2/A
Provincia di Cremona
• ELCOM - VIA IV NOVEMBRE 56/58 •
CREMA
• EUROELETTRONICA - VIA XX SETTEMBRE
92/A -CREMA
Mantova
• COMPUTER CANOSSA - GAL. FERRI 7
• 32 BIT - VIA C. BATTISTI 14
• ELET. di BASSO - V.LE RISORGIMENTO 69
Provincia di Manlova
• CLICK - ON COMPUTER - SS GOlTESE
168 - GOITO
Pavia
• POLIWARE - C.SO C ALBERTO 76
• SENNA GIANFRANCO - VIA CALCHI 5
Provincia di Pavia
• A FERRARI - C.SO CAVOUR 57 - MORTARA
• LOGICA MAINT - V.LE M TE GRAPPA 32 -
VIGEVANO
• M VISENTIN • C.SO V. EMANUELE 76 -
VIGEVANO
Sondrio
• CIPOLLA MAURO • VIA TREMOGGE 25
Provincia di Sondrto
• FOTONOVA - VIA VALERIANA 1 - S. PIETRO DI
BERBENNO
Varese
• ELLE - EFFE - VIA GOLDONI 35
• IL C.TRO ELET. . VIA MORAZZONE 2
• SUPERGAMES - VIA CARROBBIO 13
Provincia di Varese
• BUSTO BIT - VIA GAVINANA 17-BUSTO A.
• MASTER PIX - VIA S.MICHELE 3 - BUSTO A.
• PUNTO UFFICIO • VIA R SANZIO 8 - GALLA-
RATE
• GRANDI MAGAZZINI BOSSI - VIA CLERICI
196 • GERENZANO
• J.A.C. - C.SO MATTEOTTI 38 - SESTO C.
PIEMONTE
Alessandria
• BIT MICRO • VIA MAZZINI 102
• SERV. INFOR. - VIA ALESSANDRO III 47
Provincia di Alessandria
• SONY ITALIANA - VIA G. MANARA 7 - CASA-
LE MONFERRATO
• SGE ELETTRONICA - VIA BANDELIO 19 -
TORTONA
• COMPUTER TEMPLE - VIA F. CAVALLOTT1 13
- VALENZA
Asti
• ASTI GAMES - C.SO ALFIERI 26
• RECORD - C.SO ALFIERI 166/3 (Galleria
Argenta)
Cuneo
• ROSSI COMPUTERS - C SO NIZZA 42
Provincia di Cuneo
• PUNTO BIT - C.SO LANCHE 26/C - ALBA
• BOSETTI - VIA ROMA 149 - FOSSANO
• COMPUTERLAND - VIA MAZZINI 30/32 •
SALUZZO
Novara
• PROGRAMMA 3 - V.LE BUONARROTI 8
• PUNTO VIDEO - C.so RISORGIMENTO 39/B
Provincia di Novara
• COMPUTER - VIA MONTE ZEDA 4 -ARONA
• ALL COMPUTER - C SO GARIBALDI 106 •
BORGOMANERO
• S.P.A. - C.SO DISSEGNA 21 /BIS -
DOMODOSSOLA
• ELLIOTT COMPUTER SHOP - VIA DON MIN-
ZONI 32 - INTRA
• TRISCONI VALERIA - VIA MAZZINI 90 -
OMEGNA
Torino
• ABA ELETTRONICA - VIA C FOSSATI 5/P
• ALEX COMPUTER E GIOCHI - C.SO FRAN-
CIA 333/4
• COMPUTER HOME - VIA SAN DONATO
46/D
• COMPUTING NEW - VIA M. POLO 40/E
• C.D.M ELETTR. - VIA MAROCHETTI 17
• DE BUG - C.SO V. EMANUELE II 22
• DESME UNIVERSAL - VIA S.SECONDO 95
• FDS ALTERIO - VIA BORGARO 86/D
• IL COMPUTER - VIA N. FABRIZI 126
• MICRONTEL - C SO D degl. ABRUZZI 28
• PLAY GAMES SHOP - VIA C ALBERTO 39/E
• RADIO TV MIRAFlORl - C SO UNIONE SOVIE-
TICA 381
• SMT ELETTRONICA - VIA BIBIANA 83/t>iS
Provincia di Torino
• PAUL E CHICO VIDEOSOUND - VIA V.EMA-
NUELE 52 • CHIERI
• BIT INFORMATICA - VIA V. EMANUELE
154 - CIRIE'
• HI-FI CLUB - C.SO FRANCIA 92C -
COLLEGNO
• MISTER PERSONAL - VIA CATTANEO 52 -
FAVRIA
• LC.S. - VIA TORINO 73 - IVREA
• DAG - VIA I MAGGIO 40 - LUSERNA S.
GIOVANNI
• EUREX - C.SO INDIPENDENZA 5 - Rl-
VAROLO CANAVESE
• DIAM INFORMATICA - C SO FRANCIA 146 bis
- RIVOLI
• FULLINFORMATICA - VIA V. VENETO 25 - RI-
VOLI
• GAMMA COMPUTER - VIA CAVOUR 3A-3B
- SET. TORINESE
Vercelli
•ELETTROGAMMA - C.SO BORMIOA 27 ang.
V. Montanara
• ELETTRONICA - STRADA TORINO 15
Provincia di Vercelli
• C S I. TEOREMA - VIA LOSANA 9 - BIELLA
• SIGEST - VIA BERTODANO 8 - BIELLA
• REMONDINO FRANCO - VIA ROMA 5 -
BORGOSESIA
• FOTOSTUDIO TRÉVISAN - VIA XXV APRILE
24/B - COSSATO
• STUDIO FOTOGRAFICO IMARISIO - P ZZA M.
LIBERTA' 7 - TRINO
VENETO
Belluno
• UP TO DATE - VIA V. VENETO 43
Provincia di Belluno
• GUERRA COMPUTERS - V.LE MAZZINI 10/A -
FELTRE
Padova
• BIT SHOP - VIA CAIROU 11
• COMPUMANIA - VIA T. CAMPOSANPIERO 37
• D.P.R DE PRATO R. - V.LO LOMBARDO 4
• G.F. MARCATO - VIA MADONNA DELLA SA-
LUTE 51/53
• SARTO COMPUTER • VIA ARMISTIZIO 79
Provincia di Padova
• COMPUTER SERVICE - BORGO TREVISO 1 50
- CITTADELLA
Treviso
• BIT 2000 - VIA BRANDOLINI D ADDA 14
• GUERRA EGIDIO & C. - V.LE CAIROU 95
Provincia di Treviso
• DE MARIN COMPUTERS • VIA MATTEOTTI
142 - CONEGLIANO
• Si DE STREET - VIA SALVO D'ACQUISTO 8
- MONTEBELLUNA
• FALCON ELETTROAUDIOVIDEO - VIA TER-
RAGGIO 116 - PREGANZIOL
Venezia
• GUERRA EGIDIO & C. - VIA BISSUOLA
20/A - MESTRE
• TELERADIO FUGA - SAN MARCO 3457
Provincia di Venezia
• GUERRA EGIDIO & C. - VIA VIZZOTTO 29 •
SAN DONA' DI PIAVE
• REBEL - VIA F. CRISPI 10 - SAN DONA 1 DI
PIAVE
Verona
• CASA DELLA RADIO - VIA CAIROU 10
• TELESAT - VIA VASCO DE GAMA 6
• Provincia di Verona
• U BER - CP 0363(RAG SOC. DERTA) - VIA MA-
SCAGNI 31 -CASTE* CAZZANO
• FERRARIN - VIA DEI MASSAR1 10 • LEGNAGO
• COMPUTERS CENTER - VIA CANTORE 26
- VILLAFRANCA
Vicenza
• ELET. BISELLO - V.LE Tfi'ESTE 427/429
• SCALCHI MARKET - VIA C.V BALBI 139
Provincia di Vicenza
• SCHIAVOTTO - VIA ZANELLA 21 -
CAVAZZALE
• GUERRA E 4 C. - V.LE DELLE INDUSTRIE •
MONTECCHIO MAGGIORE
FRIULI VENEZIA GIULIA
Gorizia
• E CO. ELETTRONICA - VIA F.LLI COSSAR
23
Trieste
• AVANZO GIACOMO - P ZZA CAVANA 7
• COMPUTER SHOP • VIA P. RETI 6
• COMPUTIGI - VIA XX SETTEMBRE 51
• CTI - VIA PASCOLI 4
Udine
• MOFERT 2 - VIA LEOPARDI 21
• R.T. SISTEM UDINE - VIA L DA VINCI 99
Provincia di Udine
• IL PUNTO ELETTRONICO - VIA VENDRAMIN
184 - LATISANA
• I DRENO MATTIUSSI 4C. - VIA UCINIANA
58 - MARTIGNACCO
TRENTINO ALTO ADIGE
Bolzano
• COMPUTER POINT - VIA ROMA 82/A
• MATTEUCCI PRESTIGE - VIA MUSEO 54
Provincia di Bolzano
• RADIO MAIR-ELECTRO - VIA CENTRALE
70 - BRUNICO
• ELECTRO RADIO HENDRICH - VIA DELLE
CORSE 106 - MERANO
• ERICH KONTSCHIEDER - PORTICI 313 -
MERANO
• ELECTRO TAPPEINER - P.ZZA PRINCIPALE
90 - SILANDRO
Trento
• CRONST - VIA G. GALILEI 25
Provincia di Trento
94 - Commodore Computer Club
• 4. risparmio - c.so Verona im •
*: «ERETO
JGURIA
Genova
• ABM COMPUTER - P ZZA DE FERRAR. 24
'»so
• CAPRIOTTI G. • IA MAMIANJ 4r -
5AMPIERDARENA
• Ciro ELET • VIA CHIARAVAGNA 10 R - VIA
SESTRI 69R
• OOMJt SOTTORIPA - VIA SOTTORIPA
115/117
• FOTOMOND1AL - VIA DEL CAMPO 3-5-9-11-
13 r
• LA NASCENTE - VIA SAN LUCA 4/1
• PLAY TIME - VIA GRAMSCI 3/5/7 rosso
• RAPPR-EL - VIA BORGORATTI 23 R
Imperia
• CASTELLINO • VIA BELGRANO 44
Provincia di Imperia
• CENTRO HI-FI VIDEO - VIA DELLA REPUB-
BLICA 38 -SANREMO
• CASTELLINO - VIA GENOVA 48 - V6N-
TIMIGLIA
La Spezia
• I.L ELETTRONICA - VIA V. VENETO 123
Provincia (fi La Spezia
• II. ELETTRONICA - VIA AURELI A 299 • FOR-
NOLA DI VEZZANO
Savona
« CASTELLINO - C.SO TARDY E BENECH
101
Provincia di Savona
• CELESIA ENZA - VIA GARIBALDI 144 .
LOANO
EMILIA
Bologna
• EUROELETTRICA - VIA RANZANI 13/2
• MINNELLA ALTA FEDELTÀ' - VIA MAZZINI
146/2
• MORINI 4 FEDERICI - VIA MARCONI 28/C
• STERLINO • VIA MURRI 73/75
Provincia di Bologna
• S.C. COMPUTERS • VIA E FERMI 4 - CASTEL
SAN PIETRO
• S.P.E INFORMATICA - VIA DI MEZZO PO-
NENTE 385 - CREVALCORE
« ARCHIMEDE SISTEMI - VIA EMILIA 124 - S
LAZZARO DI SAVENA
Modena
• CO - EL - VIA CESARI 7
• ORSA MAGGIORE • P ZZA MATTEOTTI 20
• VIDEO VAL WILLY COMPUTERS - VIA CANA-
LETTO 223
Provincia (fi Modena
• NEW MEDIA SYSTEM - VIA ROMA 281 -
SOLIERA
Parma
• BABARELLI G. - VIA B. PARENTE 14/A/B
Provincia (fi Parma
• PONGOLINI - VIA CAVOUR 32 - PIOENZA
Piacenza
• COMPUTER UNE - VIA G. CARDUCCI 4
• DELTA COMPUTER • VIA M DELLA RESI-
STENZA 15/G
TEGGIO EMILIA
• COMPUTERLINE - VIA SAN ROCCO 10/C
• POOL SHOP - VIA EMILIA S. STEFANO
9/C
Provincia di Reggio Emilia
• MACCHIONI - VIA STATALE 467 . CA-
SALGRANDE
ROMAGNA
Ferrara
• BUSINESS POINT - VIA CARLO MAYER 85
Forti
• COMPUTER VIDEO CENTER - VIA CAMPO DI
MARTE 122
Provincia di Forti
• TOP BIT - VIA VENETO 12 - FORUM-
POPOLI
• COMPUTER HOUSE - V.LE TRIPOLI 193/D
- RIMINI
• EASY COMPUTER - VIA LAGOMAGGlO 50
- RIMISI
REPUBBLICA S. MARINO
Ravenna
• COMPUTER HOUSE • VIA TRIESTE 134
Provincia di Ravenna
• ARGNANI - P ZZA DELLA L BERTA 5'A -
FAENZA
• ELECTRON INFORMATICA - VIA F HI COR-
TESI 17 - LUGO
• P L Z INFORMATICA - P ZZA SERCOGNANI 6
- FAENZA
TOSCANA
Arezzo
• DELTA SYSTEM - VIA PIAVE 13
Firenze
• ATEMA - VIA BENEDETTO MARCELLO 1a-
ib
• ELETTRONICA CENTOSTELLE • VIA CENTO
STELLE 5/a-b
• HELP COMPUTER - VIA DEGLI ARTISTI
15-A
•TELEINFORMATICA TOSCANA -VIA BRONZI-
NO 36
Provincia (fi Firenze
• WAR GAMES • VIA R SANZIO 126/A -
EMPOLI
• NEW EVM COMPUTER - VIA DEGLI INNO-
CENTI 2 - FIGLINE VALOARNO
• Ciro INFOR. - VIA ZNOJMO 41 - PON-
TASS1EVE
• COSCI FUI - VIA POMA 26 - PRATO
• BARBAGLI C ELET - VIA F BONI e0 -
PRATO
Groaaelo
• COMPUTER SERVICE • VIA DELL'UNIONE
7
Livorno
• ETÀ BETA - VIA SAN FRANCESCO 30
• FUTURA 2 - VIA CAMBJNI 19
Provincia di Livorno
• PUNTO ROSSO - VIA BARONTINI 28 -
PIOMBINO
Provincia di Lucca
• IL COMPUTER • V LE COLOMBO 216 - LIDO
DI CAMAIORE
• SANTI VITTORIO • VIA ROMA 23 - S ROMA-
NO GARFAGNANA
• TOP GAMES - VIA S. ANDREA 122 -
VIAREGGIO
Massa
• EURO COMPUTER - P-ZZA G. BERTAGNINI
4
Carrara
• RADIO LUCONI - VIA ROMA 24/B
Pisa
• ELECTRONIC SERVICE - VIA DELLA VEC-
CHIA TRANVIA 10
• PUCCINI S-- CP 1199 (RAG-SOC. MAREX) -
VIA C.CAMMEO 64
• TONY HI-FI - VIA CAROUCCI
Provincia (fi Pisa
• M C. INFORMATICA • VIA DEL CHIESTO 4 -
PONTEDÉRA (Pl>
Pistoia
• ELECTRONIC SHOP - VIA DEGLI SCALZI 3
Provincia di Pistoia
• ZANNI 4C - C.SO ROMA 45 - MON-
TECATINI T.
Siena
• R. 0ROGI - P.ZZA GRAMSCI 28
• VIDEO MOVIE - VIA GARIBALDI 17
Provincia di Siena
• ELETTRONICA ci BIFOLCHI - VIA D> GRAC-
CIANO NEL CORSO 111 - MONTEPULCIANO
LAZIO
• CENTRO INF. - DR.R srt - TEL 06-
5565672
UMBRIA
Perugia
• MIGLIORATI - VIA S ERCOLANO 3-10
Provincia di Perugia
• COMPUTER STUDIO S - VIA IV NOVEMBRE
18/A - BASTIA UMBRA
• WARE - VIA DEI CASCERI 31 - CITTA DI
CASTELLO
Terni
• CGS SOFTWARE MOUSE - VIA DONiZETTI
71 /A
BASILICATA
Matera
• G SAUDIANO ELECTRONICS - VIA ROMA
ang XX SETTEMBRE J
PUGLIA
Bari
• ARTEL - VIA GUIDO D'ORSO 9
• COMPUTER S ARTS - V LE MEUCCl 12/8
• PAULICELU S. 4 F • VIA FANELLI 231/C
Provincia di Bari
• F FAGGELLA - CSO GARIBALDI 15 •
barletta
• G FAGGELLA - P ZZA D ARAGONA 62A -
BARLETTA
• LONUZZO G • VIA NIZZA 21 • CASTELLANA
• TECNOUFF - VIA RlCASOU 54 - MONOPOLI
• TANGORRA N - C SO V EMANUELE 130/B
- TRIGGIANO
Brindisi
• MARANGl E NICCOLI • VIA PROV SAN
VITO 165
Provincia di Bnndtsi
• MILONE G. - VIA S.F. D ASSISI 219 - FRAN-
CARLA FONTANA
Foggia
• BOTTICELLI G. - VIA SAV POLLICE 2
• E C I COMPUTER • VIA ISONZO 28
• LA TORRE - V LE MICHELANGELO 185
Provincia di Foggia
• IL DISCOBOLO - VIA T. SOtlS 15 - SAN
SEVERO
Lecce
• BIT - VIA 95 REGG.NTO FANTERIA 87/89
Provincia di Lecce
• TECNO UFFICIO - P ZZA GIOVANNI XXIII
10 - GALLIPOLI
• CEOOK INFORMATICA - VIA UMBERTO 1 116
- TRICASE
Taranto
• ELETTROJOLLY Ciro - VIA DE CESARE 13
• TEA - TEC. ELET AV. - VIA R ELENA 101
CAMPANIA
Provincia di Avallino
• FLIP FLOP - VIA APPlA 68 - ATRIPALDA
Benevento
• E CO. INF - VIA PEPICELLl 21/25
Caserta
• ENTRY POINT - VIA COLOMBO 31
• O P C - VIA G M BOSCO 24
Provincia di Caserta
• MP COMPUTER - VIA NAPOLI 30 •
MAODALONI
• DAMIANO - C SO V. EMANUELE 23 -ORTA
DI ATELLA
• FUSCO 8 - VIA NAPOLI 24 - VAiRANO PA-
TERNORA (FRAZ VAIRANO SCALO)
• LINEA CONTABILE - VIA OSPEDALE 72/76 -
SESSA A (CE) .
Napob
• BABY TOYS - VIA CISTERNA DELL'OLIO
5/BIS
• CASA MUSICALE RUGGIERO - P.ZZA GAR|.
BALDI 74 (INT. STAZ F.F. S S.)
• C tro ELET CAMPANO ■ VIA EPOMEO 121
• CLAN - GALLERIA VANVITEILI 32
• CINE NAPOLI - VIA S. LUCIA 93/95
• DARVIN - CALATA SAN MARCO 26
• GIANCAR 2 - P.ZZA GARIBALDI 37
• ODORINO - L.GO LALA 22 A-B
• R 2 - VIA F. CILEA 285
• SAGMAR - VIA S. LUCIA 140
• TOP VIDEO - TOP COMPUTER - VIA S. ANNA
DEI LOMBARDI 12
• VIDEOFOTOMARKET - VIA S. BRIGIDA 19
Provincia di Napoli
• ELECTRONIC OAY • VIA DELLE PUGLIE 17
- CASO RIA
• TUFANO - S S SANNITICA 87 KM 7 -
CASORIA
• SOF SUO - V.LE EUROPA 59 - CASTEL/MARE
DI STABIA
• ELETTRONICA 2000 - C SO DURANTE 40 •
FRATTAMAGGIORE
• SPAOARO - VIA ROMANI 93 - MADONNA
DELL'ARCO
• GATEWAY - VIA NAPOLI 68 - MUGNANO
• VISPINI 4 DI VUOLO - VIA A ROSSI 4 -
POMPEI
• SPY CASH 4 CARRY - P.ZZA ARENELLA 6/A -
NAPOLI
• NUOVA INFORMATICA SHOP - VIA LIBERTA'
185/191 PORTICI
• BASIC COMPUTER - C.SO GARIBALDI 34 -
POZZUOLI
• V.C - C.SO SECONOIGLIANO 562/B •
SECONDtGLIANO
• F. ELETTRONICA - VIA SARNO 102 -
STRIANO
• TECNO - VIA V. VENETO 48 . TORRE DEL
GRECO
Salerno
• COMPUMARKET - VIA BELVEDERE 35
• COMPUTER MARKET - C.SO VITTORIO EMA-
NUELE 23
Provincia (fi Salerno
• KING COMPUTER - VIA OLEVANO 56 -
BATTIPAGLIA
• DIMER POINT - V.LE AMENDOLA 36 -
E BOLI
• iACUZIO F. - VIA MUNICIPIO 14 - MERCATO
SAN SEVERINO
• COMPUTER SERVICE - VIA L.DA VINCI 8<
- SCAFATI
CALABRIA
Catanzaro
• C. 4 G COMPUTER - VIA F ACRI 28
• PAONE S. 4 F ■ VIA F ACRI 93/99
Provincia di Catanzaro
• COMPUTER HOUSE • VIA BOLOGNA (L.GO
OSPEDALE) - CROTONE
• RIOLO FILI ■ VIA VENEZIA 1/7 - CROTONE
• INO. FUSTO S - C SO NICOTERA 99 - LAME-
ZIA TERME
Cosenza
• MAISON DE L'INFORMATIQUE - VIA PA-
SQUALE ROSSI 34/C
• SIRANGELO COMP. - VIA N. PARlSlO 25
Provincia di Coaerua
• HI-FI ALFANO G. - VIA BALDACCHINI 109
- AMANTIA
• ELIGIO ANNICCHIARCO 4C. • VIA ROMA
21 - CASTROV1LLARI
• ALFA COMPUTER - VIA NAZIONALE 341 /A -
CORIGUANO SCALO
REGGIO CALABRIA
• CONTROL SYSTEM - VIA S.F DA PAOLA
49 0
• SYSTEM H0U • VIA FIUME ang PAiESTWO 1
Provincia di Reggio Calabria
• COMPUTER SHOP - V LE MATTEOTTI 36/38 '
LOCRI
• PICIEFFE - C.SO F. S. ALESSIO 19 -
TAURI ANOVA
SICILIA
• CENTRO INF. - ITALSOFT SRL - TEL. 0935-
696090
Commodore Computer Club - 95
A MAGGIO
SPECIALE VOLO
& PARAPENDIO